//! Lebedev spherical quadrature generation.
//!
//! # See also
//!
//! [SciPy implementation](https://github.com/scipy/scipy/blob/v1.15.3/scipy/integrate/_lebedev.py)
//!
//! [PySCF implementation](https://github.com/pyscf/pyscf/blob/v2.9.0/pyscf/dft/LebedevGrid.py)
//!
//! # References
//!
//! V.I. Lebedev, and D.N. Laikov
//! "A quadrature formula for the sphere of the 131st
//! algebraic order of accuracy"
//! Doklady Mathematics, Vol. 59, No. 3, 1999, pp. 477-481.

use rstsr_core::prelude_dev::*;

/* # region general function definition */

/// Lebedev quadrature rule generation.
///
/// This function should be called in this way: `lebedev_rule::<SomeDevice>(n)`.
///
/// # Arguments
///
/// * `n` - The order of the Lebedev rule.
///
/// # Note
///
/// Please note that this function returns results that is different to SciPy
/// and PySCF.
///
/// This function will return `quads` as (m, 3) shape, and `weights` as (m,)
/// shape (always in C-contiguous, even in col-major scene).
///
/// In SciPy, `quads` is returned as (3, m) shape. In PySCF, `quads` and
/// `weights` are combined and returned as (m, 4) shape.
///
/// # Valid values
///
/// | order | degree |
/// |--|--|
/// | 3 | 6 |
/// | 5 | 14 |
/// | 7 | 26 |
/// | 9 | 38 |
/// | 11 | 50 |
/// | 13 | 74 |
/// | 15 | 86 |
/// | 17 | 110 |
/// | 19 | 146 |
/// | 21 | 170 |
/// | 23 | 194 |
/// | 25 | 230 |
/// | 27 | 266 |
/// | 29 | 302 |
/// | 31 | 350 |
/// | 35 | 434 |
/// | 41 | 590 |
/// | 47 | 770 |
/// | 53 | 974 |
/// | 59 | 1202 |
/// | 65 | 1454 |
/// | 71 | 1730 |
/// | 77 | 2030 |
/// | 83 | 2354 |
/// | 89 | 2702 |
/// | 95 | 3074 |
/// | 101 | 3470 |
/// | 107 | 3890 |
/// | 113 | 4334 |
/// | 119 | 4802 |
/// | 125 | 5294 |
/// | 131 | 5802 |
pub fn lebedev_rule<B>(n: usize, device: &B) -> LebedevQuad<B>
where
    B: DeviceAPI<f64> + LebedevRuleAPI,
{
    device.lebedev_rule_f(n).rstsr_unwrap()
}

pub fn lebedev_rule_f<B>(n: usize, device: &B) -> Result<LebedevQuad<B>>
where
    B: DeviceAPI<f64> + LebedevRuleAPI,
{
    device.lebedev_rule_f(n)
}

/// Lebedev quadrature rule generation.
///
/// This function inputs degree instead of order.
///
/// # See also
///
/// [`lebedev_rule`]
pub fn lebedev_rule_from_degree<B>(degree: usize, device: &B) -> LebedevQuad<B>
where
    B: DeviceAPI<f64> + LebedevRuleAPI,
{
    lebedev_rule_from_degree_f(degree, device).rstsr_unwrap()
}

pub fn lebedev_rule_from_degree_f<B>(degree: usize, device: &B) -> Result<LebedevQuad<B>>
where
    B: DeviceAPI<f64> + LebedevRuleAPI,
{
    let order =
        lebedev_degree_to_order(degree).map_err(|_| rstsr_error!(InvalidValue, "Invalid Lebedev degree {degree}"))?;
    lebedev_rule_f(order, device)
}

pub trait LebedevRuleAPI
where
    Self: DeviceAPI<f64>,
{
    /// Generate Lebedev quadrature rule.
    fn lebedev_rule_f(&self, n: usize) -> Result<LebedevQuad<Self>>;

    /// Generate Lebedev quadrature rule.
    fn lebedev_rule(&self, n: usize) -> LebedevQuad<Self> {
        self.lebedev_rule_f(n).rstsr_unwrap()
    }
}

/// Lebedev quadrature rule data structure.
///
/// * `quads`: A tensor of shape (m, 3) representing the quadrature points (c-contiguous).
/// * `weights`: A tensor of shape (m,) representing the quadrature weights.
pub struct LebedevQuad<B>
where
    B: DeviceAPI<f64>,
{
    pub quads: Tensor<f64, B, IxD>,
    pub weights: Tensor<f64, B, IxD>,
}

impl<B> From<LebedevQuad<B>> for (Tensor<f64, B, IxD>, Tensor<f64, B, IxD>)
where
    B: DeviceAPI<f64>,
{
    fn from(value: LebedevQuad<B>) -> Self {
        (value.quads, value.weights)
    }
}

/* #endregion */

/* #region order transformation */

/// Transform Lebedev quadrature order to degree.
pub fn lebedev_order_to_degree(n: usize) -> Result<usize> {
    let order = match n {
        3 => 6,
        5 => 14,
        7 => 26,
        9 => 38,
        11 => 50,
        13 => 74,
        15 => 86,
        17 => 110,
        19 => 146,
        21 => 170,
        23 => 194,
        25 => 230,
        27 => 266,
        29 => 302,
        31 => 350,
        35 => 434,
        41 => 590,
        47 => 770,
        53 => 974,
        59 => 1202,
        65 => 1454,
        71 => 1730,
        77 => 2030,
        83 => 2354,
        89 => 2702,
        95 => 3074,
        101 => 3470,
        107 => 3890,
        113 => 4334,
        119 => 4802,
        125 => 5294,
        131 => 5810,
        _ => 0,
    };
    if order == 0 {
        rstsr_raise!(InvalidValue)
    } else {
        Ok(order)
    }
}

/// Transform Lebedev quadrature order to degree.
pub fn lebedev_degree_to_order(n: usize) -> Result<usize> {
    let order = match n {
        6 => 3,
        14 => 5,
        26 => 7,
        38 => 9,
        50 => 11,
        74 => 13,
        86 => 15,
        110 => 17,
        146 => 19,
        170 => 21,
        194 => 23,
        230 => 25,
        266 => 27,
        302 => 29,
        350 => 31,
        434 => 35,
        590 => 41,
        770 => 47,
        974 => 53,
        1202 => 59,
        1454 => 65,
        1730 => 71,
        2030 => 77,
        2354 => 83,
        2702 => 89,
        3074 => 95,
        3470 => 101,
        3890 => 107,
        4334 => 113,
        4802 => 119,
        5294 => 125,
        5810 => 131,
        _ => 0,
    };
    if order == 0 {
        rstsr_raise!(InvalidValue)
    } else {
        Ok(order)
    }
}

/* #endregion */

/* #region generation for CPU */

/// Generate part of Lebedev quadrature with Oh symmetry.
/// 
/// This implementation is more similar to PySCF's implementation of function `SphGenOh`.
#[rustfmt::skip]
#[allow(non_upper_case_globals)]
#[allow(clippy::excessive_precision)]
#[inline]
pub fn lebedev_generate_sph_oh(code: u8, a: f64, b: f64, v: f64, quads: &mut [f64], weights: &mut [f64]) {
    match code {
        0 => {
            // const grid
            const a: f64 = 1.0;
            // 6 points
            quads[..18].copy_from_slice(&[
                 a ,  0.,  0.,
                -a ,  0.,  0.,
                 0.,  a ,  0.,
                 0., -a ,  0.,
                 0.,  0.,  a ,
                 0.,  0., -a ,
            ]);
            weights[..6].fill(v);
        },
        1 => {
            // const grid
            // a = sqrt(1/2)
            const a: f64 = core::f64::consts::FRAC_1_SQRT_2;
            // 12 points
            quads[..36].copy_from_slice(&[
                 0.,  a ,  a ,
                 0., -a ,  a ,
                 0.,  a , -a ,
                 0., -a , -a ,
                 a ,  0.,  a ,
                -a ,  0.,  a ,
                 a ,  0., -a ,
                -a ,  0., -a ,
                 a ,  a ,  0.,
                -a ,  a ,  0.,
                 a , -a ,  0.,
                -a , -a ,  0.,
            ]);
            weights[..12].fill(v);
        },
        2 => {
            // const grid
            // a = sqrt(1/3)
            const a: f64 = 0.577350269189625764509148780501957456_f64;
            // 8 points
            quads[..24].copy_from_slice(&[
                 a ,  a ,  a , 
                -a ,  a ,  a , 
                 a , -a ,  a , 
                -a , -a ,  a , 
                 a ,  a , -a ,
                -a ,  a , -a ,
                 a , -a , -a ,
                -a , -a , -a ,
            ]);
            weights[..8].fill(v);
        },
        3 => {
            let b = (1.0 - 2.0 * a * a).sqrt();
            // 24 points
            quads[..72].copy_from_slice(&[
                 a ,  a ,  b ,
                -a ,  a ,  b ,
                 a , -a ,  b ,
                -a , -a ,  b ,
                 a ,  a , -b ,
                -a ,  a , -b ,
                 a , -a , -b ,
                -a , -a , -b ,
                 a ,  b ,  a ,
                -a ,  b ,  a ,
                 a , -b ,  a ,
                -a , -b ,  a ,
                 a ,  b , -a ,
                -a ,  b , -a ,
                 a , -b , -a ,
                -a , -b , -a ,
                 b ,  a ,  a ,
                -b ,  a ,  a ,
                 b , -a ,  a ,
                -b , -a ,  a ,
                 b ,  a , -a ,
                -b ,  a , -a ,
                 b , -a , -a ,
                -b , -a , -a ,
            ]);
            weights[..24].fill(v);
        },
        4 => {
            let b = (1.0 - a * a).sqrt();
            // 24 points
            quads[..72].copy_from_slice(&[
                 a ,  b ,  0.,
                -a ,  b ,  0.,
                 a , -b ,  0.,
                -a , -b ,  0.,
                 b ,  a ,  0.,
                -b ,  a ,  0.,
                 b , -a ,  0.,
                -b , -a ,  0.,
                 a ,  0.,  b ,
                -a ,  0.,  b ,
                 a ,  0., -b ,
                -a ,  0., -b ,
                 b ,  0.,  a ,
                -b ,  0.,  a ,
                 b ,  0., -a ,
                -b ,  0., -a ,
                 0.,  a ,  b ,
                 0., -a ,  b ,
                 0.,  a , -b ,
                 0., -a , -b ,
                 0.,  b ,  a ,
                 0., -b ,  a ,
                 0.,  b , -a ,
                 0., -b , -a ,
            ]);
            weights[..24].fill(v);
        },
        5 => {
            let c = (1.0 - a * a - b * b).sqrt();
            // 48 points
            quads[..144].copy_from_slice(&[
                 a ,  b ,  c ,
                -a ,  b ,  c ,
                 a , -b ,  c ,
                -a , -b ,  c ,
                 a ,  b , -c ,
                -a ,  b , -c ,
                 a , -b , -c ,
                -a , -b , -c ,
                 a ,  c ,  b ,
                -a ,  c ,  b ,
                 a , -c ,  b ,
                -a , -c ,  b ,
                 a ,  c , -b ,
                -a ,  c , -b ,
                 a , -c , -b ,
                -a , -c , -b ,
                 b ,  a ,  c ,
                -b ,  a ,  c ,
                 b , -a ,  c ,
                -b , -a ,  c ,
                 b ,  a , -c ,
                -b ,  a , -c ,
                 b , -a , -c ,
                -b , -a , -c ,
                 b ,  c ,  a ,
                -b ,  c ,  a ,
                 b , -c ,  a ,
                -b , -c ,  a ,
                 b ,  c , -a ,
                -b ,  c , -a ,
                 b , -c , -a ,
                -b , -c , -a ,
                 c ,  a ,  b ,
                -c ,  a ,  b ,
                 c , -a ,  b ,
                -c , -a ,  b ,
                 c ,  a , -b ,
                -c ,  a , -b ,
                 c , -a , -b ,
                -c , -a , -b ,
                 c ,  b ,  a ,
                -c ,  b ,  a ,
                 c , -b ,  a ,
                -c , -b ,  a ,
                 c ,  b , -a ,
                -c ,  b , -a ,
                 c , -b , -a ,
                -c , -b , -a ,
            ]);
            weights[..48].fill(v);
        }
        _ => unreachable!()
    }
}

/// Generate Lebedev quadrature to rust vector.
///
/// First vector is for quadrature points (m, 3), and second vector is for
/// weights (m).
/// 
/// This implementation panics if the order is not supported. The caller should
/// check the order with `lebedev_order_to_degree` first.
#[rustfmt::skip]
#[allow(clippy::excessive_precision)]
pub fn lebedev_make_angular_grid(degree: usize) -> Result<(Vec<f64>, Vec<f64>)> {
    let grid_table: &[(u8, [f64; 3])] = match degree {
        6 => &[
            (0, [ 0.0                   , 0.0                   , 1.6666666666666671e-01]),
        ],
        14 => &[
            (0, [ 0.0                   , 0.0                   , 6.6666666666666666e-02]),
            (2, [ 0.0                   , 0.0                   , 7.4999999999999997e-02]),
        ],
        26 => &[
            (0, [ 0.0                   , 0.0                   , 4.7619047619047623e-02]),
            (1, [ 0.0                   , 0.0                   , 3.8095238095238099e-02]),
            (2, [ 0.0                   , 0.0                   , 3.2142857142857140e-02]),
        ],
        38 => &[
            (0, [ 0.0                   , 0.0                   , 9.5238095238095247e-03]),
            (2, [ 0.0                   , 0.0                   , 3.2142857142857140e-02]),
            (4, [ 4.5970084338098310e-01, 0.0                   , 2.8571428571428571e-02]),
        ],
        50 => &[
            (0, [ 0.0                   , 0.0                   , 1.2698412698412700e-02]),
            (1, [ 0.0                   , 0.0                   , 2.2574955908289240e-02]),
            (2, [ 0.0                   , 0.0                   , 2.1093750000000001e-02]),
            (3, [ 3.0151134457776357e-01, 0.0                   , 2.0173335537918870e-02]),
        ],
        74 => &[
            (0, [ 0.0                   , 0.0                   , 5.1306717973384638e-04]),
            (1, [ 0.0                   , 0.0                   , 1.6604069565742039e-02]),
            (2, [ 0.0                   , 0.0                   , -2.9586038961038959e-02]),
            (3, [ 4.8038446141526142e-01, 0.0                   , 2.6576207082159461e-02]),
            (4, [ 3.2077264898077640e-01, 0.0                   , 1.6522170993715710e-02]),
        ],
        86 => &[
            (0, [ 0.0                   , 0.0                   , 1.1544011544011541e-02]),
            (2, [ 0.0                   , 0.0                   , 1.1943909085856280e-02]),
            (3, [ 3.6960284645415020e-01, 0.0                   , 1.1110555710603400e-02]),
            (3, [ 6.9435400660266644e-01, 0.0                   , 1.1876501294537141e-02]),
            (4, [ 3.7424303909034118e-01, 0.0                   , 1.1812303746904481e-02]),
        ],
        110 => &[
            (0, [ 0.0                   , 0.0                   , 3.8282704949371619e-03]),
            (2, [ 0.0                   , 0.0                   , 9.7937375124875128e-03]),
            (3, [ 1.8511563534473621e-01, 0.0                   , 8.2117372831911114e-03]),
            (3, [ 6.9042104838229224e-01, 0.0                   , 9.9428148911781030e-03]),
            (3, [ 3.9568947305594188e-01, 0.0                   , 9.5954713360709622e-03]),
            (4, [ 4.7836902881215021e-01, 0.0                   , 9.6949963616630285e-03]),
        ],
        146 => &[
            (0, [ 0.0                   , 0.0                   , 5.9963136886213809e-04]),
            (1, [ 0.0                   , 0.0                   , 7.3729997186207557e-03]),
            (2, [ 0.0                   , 0.0                   , 7.2105153601444878e-03]),
            (3, [ 6.7644104001142635e-01, 0.0                   , 7.1163554931175550e-03]),
            (3, [ 4.1749612279654530e-01, 0.0                   , 6.7538294863144768e-03]),
            (3, [ 1.5746766720390820e-01, 0.0                   , 7.5743941590540338e-03]),
            (5, [ 1.4035538117131829e-01, 4.4933283232695570e-01, 6.9910873533032616e-03]),
        ],
        170 => &[
            (0, [ 0.0                   , 0.0                   , 5.5448429020373653e-03]),
            (1, [ 0.0                   , 0.0                   , 6.0713327706707516e-03]),
            (2, [ 0.0                   , 0.0                   , 6.3836747735150929e-03]),
            (3, [ 2.5512526211141340e-01, 0.0                   , 5.1833875877477899e-03]),
            (3, [ 6.7436014603627659e-01, 0.0                   , 6.3179290098137253e-03]),
            (3, [ 4.3189106967194102e-01, 0.0                   , 6.2016700065890768e-03]),
            (4, [ 2.6139313603359882e-01, 0.0                   , 5.4771433851373477e-03]),
            (5, [ 4.9904531617960368e-01, 1.4466307443251150e-01, 5.9683839876811563e-03]),
        ],
        194 => &[
            (0, [ 0.0                   , 0.0                   , 1.7823404472446110e-03]),
            (1, [ 0.0                   , 0.0                   , 5.7169059499771017e-03]),
            (2, [ 0.0                   , 0.0                   , 5.5733831788487382e-03]),
            (3, [ 6.7129734426952259e-01, 0.0                   , 5.6087040825879972e-03]),
            (3, [ 2.8924656275754390e-01, 0.0                   , 5.1582377118053833e-03]),
            (3, [ 4.4469331787174371e-01, 0.0                   , 5.5187714672736143e-03]),
            (3, [ 1.2993354476500671e-01, 0.0                   , 4.1067770281693937e-03]),
            (4, [ 3.4577021976112832e-01, 0.0                   , 5.0518460646148079e-03]),
            (5, [ 1.5904171053835300e-01, 8.3603601548245887e-01, 5.5302489162330944e-03]),
        ],
        230 => &[
            (0, [ 0.0                   , 0.0                   , -5.5226399197273249e-02]),
            (2, [ 0.0                   , 0.0                   , 4.4502746074452258e-03]),
            (3, [ 4.4920446873976111e-01, 0.0                   , 4.4968410679214043e-03]),
            (3, [ 2.5204194902102012e-01, 0.0                   , 5.0491534504787496e-03]),
            (3, [ 6.9819066584472422e-01, 0.0                   , 3.9764080180518828e-03]),
            (3, [ 6.5874052434609598e-01, 0.0                   , 4.4014006503810144e-03]),
            (3, [ 4.0385440500976602e-02, 0.0                   , 1.7245443505444009e-02]),
            (4, [ 5.8238423097155845e-01, 0.0                   , 4.2310830953573427e-03]),
            (4, [ 3.5458773905186880e-01, 0.0                   , 5.1980698640643986e-03]),
            (5, [ 2.2721818089981871e-01, 4.8646615358866468e-01, 4.6957209725688826e-03]),
        ],
        266 => &[
            (0, [ 0.0                   , 0.0                   , -1.3137691273269519e-03]),
            (1, [ 0.0                   , 0.0                   , -2.5227287048593360e-03]),
            (2, [ 0.0                   , 0.0                   , 4.1868538817005831e-03]),
            (3, [ 7.0393733915854750e-01, 0.0                   , 5.3151679778108852e-03]),
            (3, [ 1.0125262485724140e-01, 0.0                   , 4.0471423770862191e-03]),
            (3, [ 4.6474487264205389e-01, 0.0                   , 4.1124823944069903e-03]),
            (3, [ 3.2774206549716289e-01, 0.0                   , 3.5955848997587820e-03]),
            (3, [ 6.6203386636999739e-01, 0.0                   , 4.2561313514281581e-03]),
            (4, [ 8.5065080835203988e-01, 0.0                   , 4.2295827006472398e-03]),
            (5, [ 3.2334845426928988e-01, 1.1531120110097010e-01, 4.0809142257805051e-03]),
            (5, [ 2.3147901587126010e-01, 5.2449392409223650e-01, 4.0714675938309641e-03]),
        ],
        302 => &[
            (0, [ 0.0                   , 0.0                   , 8.5459117251281483e-04]),
            (2, [ 0.0                   , 0.0                   , 3.5991192850255709e-03]),
            (3, [ 3.5156403455701052e-01, 0.0                   , 3.4497884243058830e-03]),
            (3, [ 6.5663294102196124e-01, 0.0                   , 3.6048226014198819e-03]),
            (3, [ 4.7290541325810048e-01, 0.0                   , 3.5767296617433670e-03]),
            (3, [ 9.6183085226147838e-02, 0.0                   , 2.3521014136891642e-03]),
            (3, [ 2.2196452362941779e-01, 0.0                   , 3.1089531224136749e-03]),
            (3, [ 7.0117664160895454e-01, 0.0                   , 3.6500458076772551e-03]),
            (4, [ 2.6441528870606629e-01, 0.0                   , 2.9823449631718041e-03]),
            (4, [ 5.7189558918789607e-01, 0.0                   , 3.6008209322164601e-03]),
            (5, [ 2.5100347517704652e-01, 8.0007274940739515e-01, 3.5715405542733870e-03]),
            (5, [ 1.2335485325833270e-01, 4.1277240831685308e-01, 3.3923122050061698e-03]),
        ],
        350 => &[
            (0, [ 0.0                   , 0.0                   , 3.0067967494539359e-03]),
            (2, [ 0.0                   , 0.0                   , 3.0506277456507709e-03]),
            (3, [ 7.0689654639123156e-01, 0.0                   , 1.6211046002889910e-03]),
            (3, [ 4.7946826257120251e-01, 0.0                   , 3.0057014849017519e-03]),
            (3, [ 1.9275331548780189e-01, 0.0                   , 2.9909925296537740e-03]),
            (3, [ 6.9303579613271227e-01, 0.0                   , 2.9821706441075951e-03]),
            (3, [ 3.6083021155200912e-01, 0.0                   , 2.7215642373109921e-03]),
            (3, [ 6.4984861614961686e-01, 0.0                   , 3.0335137958111412e-03]),
            (4, [ 1.9329450132303391e-01, 0.0                   , 3.0079495552185328e-03]),
            (4, [ 3.8004949198993032e-01, 0.0                   , 2.8819646030553070e-03]),
            (5, [ 2.8995588254995741e-01, 7.9345378565823155e-01, 2.9583576265356962e-03]),
            (5, [ 9.6841214551039570e-02, 8.2808015066868623e-01, 3.0360200264070878e-03]),
            (5, [ 1.8334346470416590e-01, 9.0746582653051266e-01, 2.8321874039263029e-03]),
        ],
        434 => &[
            (0, [ 0.0                   , 0.0                   , 5.2658979682244358e-04]),
            (1, [ 0.0                   , 0.0                   , 2.5482199720026069e-03]),
            (2, [ 0.0                   , 0.0                   , 2.5123174189273069e-03]),
            (3, [ 6.9093463075091111e-01, 0.0                   , 2.5304038011863552e-03]),
            (3, [ 1.7748360546091579e-01, 0.0                   , 2.0142790209185281e-03]),
            (3, [ 4.9143426377847460e-01, 0.0                   , 2.5017251684029359e-03]),
            (3, [ 6.4566647074242556e-01, 0.0                   , 2.5132671745975639e-03]),
            (3, [ 2.8612890103076383e-01, 0.0                   , 2.3026947822274162e-03]),
            (3, [ 7.5680843671780185e-02, 0.0                   , 1.4624956215946140e-03]),
            (3, [ 3.9272597633680018e-01, 0.0                   , 2.4453734373129799e-03]),
            (4, [ 8.8181328777942880e-01, 0.0                   , 2.4174423756389810e-03]),
            (4, [ 9.7764281111826490e-01, 0.0                   , 1.9109512821795321e-03]),
            (5, [ 2.0548236964030439e-01, 8.6894603228724121e-01, 2.4169300443247750e-03]),
            (5, [ 5.9051570489252714e-01, 7.9992785438572855e-01, 2.5122368545634952e-03]),
            (5, [ 5.5501523610768067e-01, 7.7174626269159008e-01, 2.4966440545530861e-03]),
            (5, [ 9.3718098585537224e-01, 3.3443631453434552e-01, 2.2366077604378488e-03]),
        ],
        590 => &[
            (0, [ 0.0                   , 0.0                   , 3.0951212953061872e-04]),
            (2, [ 0.0                   , 0.0                   , 1.8523796985974890e-03]),
            (3, [ 7.0409549382274694e-01, 0.0                   , 1.8717906392777439e-03]),
            (3, [ 6.8077440664552435e-01, 0.0                   , 1.8588125854383170e-03]),
            (3, [ 6.3725469392587519e-01, 0.0                   , 1.8520288282962130e-03]),
            (3, [ 5.0444197078003583e-01, 0.0                   , 1.8467159561512420e-03]),
            (3, [ 4.2157617840109668e-01, 0.0                   , 1.8184717781627689e-03]),
            (3, [ 3.3179207364721230e-01, 0.0                   , 1.7495646572811541e-03]),
            (3, [ 2.3847367014218870e-01, 0.0                   , 1.6172106472544111e-03]),
            (3, [ 1.4590364491577629e-01, 0.0                   , 1.3847372348516919e-03]),
            (3, [ 6.0950341155071960e-02, 0.0                   , 9.7643311650510501e-04]),
            (4, [ 6.1168434420098761e-01, 0.0                   , 1.8571611967740779e-03]),
            (4, [ 3.9647553481998582e-01, 0.0                   , 1.7051539963958641e-03]),
            (4, [ 1.7247820099077241e-01, 0.0                   , 1.3003216858860479e-03]),
            (5, [ 5.6102638086220602e-01, 3.5182809277335192e-01, 1.8428664729052860e-03]),
            (5, [ 4.7423928425519801e-01, 2.6347166559379498e-01, 1.8026589343774510e-03]),
            (5, [ 5.9841264978853803e-01, 1.8166408403602091e-01, 1.8498305604436600e-03]),
            (5, [ 3.7910354076955632e-01, 1.7207952256568779e-01, 1.7139045071067091e-03]),
            (5, [ 2.7786731905862438e-01, 8.2130215819325114e-02, 1.5552136033968079e-03]),
            (5, [ 5.0335642710751172e-01, 8.9992058420748755e-02, 1.8022391280085250e-03]),
        ],
        770 => &[
            (0, [ 0.0                   , 0.0                   , 2.1929420881811840e-04]),
            (1, [ 0.0                   , 0.0                   , 1.4364336173190799e-03]),
            (2, [ 0.0                   , 0.0                   , 1.4219403443358771e-03]),
            (3, [ 5.0872044105023599e-02, 0.0                   , 6.7981235110505021e-04]),
            (3, [ 1.2281987901788310e-01, 0.0                   , 9.9131842352949114e-04]),
            (3, [ 2.0268908144087860e-01, 0.0                   , 1.1802078332389489e-03]),
            (3, [ 2.8477451564642942e-01, 0.0                   , 1.2965996020809210e-03]),
            (3, [ 3.6567190789780257e-01, 0.0                   , 1.3658714274283161e-03]),
            (3, [ 4.4282648867134689e-01, 0.0                   , 1.4029886047753251e-03]),
            (3, [ 5.1406196272497351e-01, 0.0                   , 1.4186455635956090e-03]),
            (3, [ 6.3064012191668029e-01, 0.0                   , 1.4213767418516619e-03]),
            (3, [ 6.7168833320226118e-01, 0.0                   , 1.4239964754909620e-03]),
            (3, [ 6.9797926853368808e-01, 0.0                   , 1.4315540421785671e-03]),
            (4, [ 1.4468656741953090e-01, 0.0                   , 9.2544014998653678e-04]),
            (4, [ 3.3902634754112160e-01, 0.0                   , 1.2502399950535090e-03]),
            (4, [ 5.3358046512635060e-01, 0.0                   , 1.3943658433292301e-03]),
            (5, [ 6.9440243933494128e-02, 2.3551878942423260e-01, 1.1270890946717489e-03]),
            (5, [ 2.2690041095294600e-01, 4.1021824740457302e-01, 1.3457537609106701e-03]),
            (5, [ 8.0255746077753390e-02, 6.2143024174816053e-01, 1.4249572833167829e-03]),
            (5, [ 1.4679995278965721e-01, 3.2452843457173941e-01, 1.2615233412377499e-03]),
            (5, [ 1.5715077698247271e-01, 5.2244821896966298e-01, 1.3925471060526960e-03]),
            (5, [ 2.3657029931572460e-01, 6.0175466340895578e-01, 1.4187616778776561e-03]),
            (5, [ 7.7148158667657327e-02, 4.3465755161411629e-01, 1.3383666844795541e-03]),
            (5, [ 3.0629366662107299e-01, 4.9088265890376159e-01, 1.3937008626761309e-03]),
            (5, [ 3.8224773795247868e-01, 5.6487681490995001e-01, 1.4159147574669319e-03]),
        ],
        974 => &[
            (0, [ 0.0                   , 0.0                   , 1.4382941905274310e-04]),
            (2, [ 0.0                   , 0.0                   , 1.1257722882870040e-03]),
            (3, [ 4.2929635453413467e-02, 0.0                   , 4.9480293419492413e-04]),
            (3, [ 1.0514268540864040e-01, 0.0                   , 7.3579901091254700e-04]),
            (3, [ 1.7500248676230870e-01, 0.0                   , 8.8891327713043835e-04]),
            (3, [ 2.4776533796502570e-01, 0.0                   , 9.8883478389214354e-04]),
            (3, [ 3.2065671239559568e-01, 0.0                   , 1.0532996817094709e-03]),
            (3, [ 3.9165207498499832e-01, 0.0                   , 1.0927788070145780e-03]),
            (3, [ 4.5908258741876240e-01, 0.0                   , 1.1143893940632271e-03]),
            (3, [ 5.2145638884158607e-01, 0.0                   , 1.1237247880515550e-03]),
            (3, [ 6.2531702446541992e-01, 0.0                   , 1.1252393252438140e-03]),
            (3, [ 6.6379267445231704e-01, 0.0                   , 1.1261532718159050e-03]),
            (3, [ 6.9104103984983012e-01, 0.0                   , 1.1302869311238411e-03]),
            (3, [ 7.0529070074577604e-01, 0.0                   , 1.1349865343639549e-03]),
            (4, [ 1.2366867626579900e-01, 0.0                   , 6.8233679271099306e-04]),
            (4, [ 2.9407771144683870e-01, 0.0                   , 9.4541581604470958e-04]),
            (4, [ 4.6977538492076493e-01, 0.0                   , 1.0744299753856789e-03]),
            (4, [ 6.3345632411395669e-01, 0.0                   , 1.1293000865691320e-03]),
            (5, [ 5.9740486141813418e-02, 2.0291287527775231e-01, 8.4368845009019536e-04]),
            (5, [ 1.3757604084736361e-01, 4.6026219424840542e-01, 1.0752557204488850e-03]),
            (5, [ 3.3910165263362863e-01, 5.0306739996620364e-01, 1.1085772368644620e-03]),
            (5, [ 1.2716751914398200e-01, 2.8176064224421338e-01, 9.5664753237833567e-04]),
            (5, [ 2.6931207404135121e-01, 4.3315612917201568e-01, 1.0806632507173910e-03]),
            (5, [ 1.4197864526019180e-01, 6.2561673585808142e-01, 1.1267971311962951e-03]),
            (5, [ 6.7092846007382551e-02, 3.7983952168591573e-01, 1.0225687153580609e-03]),
            (5, [ 7.0577381832561722e-02, 5.5175054214235197e-01, 1.1089602677131080e-03]),
            (5, [ 2.7838884778821549e-01, 6.0296191561591872e-01, 1.1227906534357660e-03]),
            (5, [ 1.9795789389174070e-01, 3.5896063295890962e-01, 1.0324018471174600e-03]),
            (5, [ 2.0873070611032740e-01, 5.3486664381354765e-01, 1.1072493822838539e-03]),
            (5, [ 4.0551221378728358e-01, 5.6749975460743729e-01, 1.1217800485199721e-03]),
        ],
        1202 => &[
            (0, [ 0.0                   , 0.0                   , 1.1051892332675720e-04]),
            (1, [ 0.0                   , 0.0                   , 9.2052327380907407e-04]),
            (2, [ 0.0                   , 0.0                   , 9.1331597864435614e-04]),
            (3, [ 3.7126364496570891e-02, 0.0                   , 3.6904218980178988e-04]),
            (3, [ 9.1400604122622228e-02, 0.0                   , 5.6039909286806605e-04]),
            (3, [ 1.5310778524699059e-01, 0.0                   , 6.8652976292826089e-04]),
            (3, [ 2.1809288916606120e-01, 0.0                   , 7.7203385511456302e-04]),
            (3, [ 2.8398745322001751e-01, 0.0                   , 8.3015459588947952e-04]),
            (3, [ 3.4911776009637641e-01, 0.0                   , 8.6866925501796277e-04]),
            (3, [ 4.1214314614443093e-01, 0.0                   , 8.9270762858468904e-04]),
            (3, [ 4.7189936271491267e-01, 0.0                   , 9.0608202385682190e-04]),
            (3, [ 5.2731454528423372e-01, 0.0                   , 9.1197772549408669e-04]),
            (3, [ 6.2094753324440188e-01, 0.0                   , 9.1287201386041814e-04]),
            (3, [ 6.5697227118572910e-01, 0.0                   , 9.1307149356917349e-04]),
            (3, [ 6.8417883090701426e-01, 0.0                   , 9.1528737845541163e-04]),
            (3, [ 7.0126043301236307e-01, 0.0                   , 9.1874362743216544e-04]),
            (4, [ 1.0723822154781661e-01, 0.0                   , 5.1769773129656943e-04]),
            (4, [ 2.5820689594969681e-01, 0.0                   , 7.3311436821014173e-04]),
            (4, [ 4.1727529553067172e-01, 0.0                   , 8.4632328363799282e-04]),
            (4, [ 5.7003669117925027e-01, 0.0                   , 9.0311226942539917e-04]),
            (5, [ 9.8279860182639467e-01, 1.7717740226153250e-01, 6.4857784531632573e-04]),
            (5, [ 9.6242492303262284e-01, 2.4757164634262879e-01, 7.4350309109823688e-04]),
            (5, [ 9.4020079941288115e-01, 3.3546162890664888e-01, 7.9985278918390538e-04]),
            (5, [ 9.3208220401432018e-01, 3.1736152466119771e-01, 8.1017314974680184e-04]),
            (5, [ 9.0436741993932990e-01, 4.0902684270853568e-01, 8.4833895745943305e-04]),
            (5, [ 8.9124075600747465e-01, 3.8542911506692240e-01, 8.5562992573118117e-04]),
            (5, [ 8.6764356284627075e-01, 4.9322211848512848e-01, 8.8032086797382603e-04]),
            (5, [ 8.5819799860416190e-01, 4.7853206759224348e-01, 8.8110481824257196e-04]),
            (5, [ 8.3967536240498564e-01, 4.5074225931570638e-01, 8.8502823412654438e-04]),
            (5, [ 8.1652885640221884e-01, 5.6321230207620998e-01, 9.0213422990406526e-04]),
            (5, [ 8.0154693707835289e-01, 5.4343035696939002e-01, 9.0100916771050860e-04]),
            (5, [ 7.7735630690703506e-01, 5.1235184864198713e-01, 9.0226929384269153e-04]),
            (5, [ 7.6616212139003936e-01, 6.3942796347491015e-01, 9.1580161746934654e-04]),
            (5, [ 7.5535841435335105e-01, 6.2698055090243920e-01, 9.1315780031894355e-04]),
            (5, [ 7.3443057575595028e-01, 6.0311616930963097e-01, 9.1078135794827046e-04]),
            (5, [ 7.0438371840217651e-01, 5.6937024984684415e-01, 9.1057602589701258e-04]),
        ],
        1454 => &[
            (0, [ 0.0                   , 0.0                   , 7.7771607432612467e-05]),
            (2, [ 0.0                   , 0.0                   , 7.5576464130047011e-04]),
            (3, [ 3.2292906634138543e-02, 0.0                   , 2.8416338060906172e-04]),
            (3, [ 8.0367332714622222e-02, 0.0                   , 4.3744191270535552e-04]),
            (3, [ 1.3542899605316530e-01, 0.0                   , 5.4171747408721723e-04]),
            (3, [ 1.9389638611144261e-01, 0.0                   , 6.1480008913585927e-04]),
            (3, [ 2.5373437150112749e-01, 0.0                   , 6.6643944858007045e-04]),
            (3, [ 3.1352514347525701e-01, 0.0                   , 7.0250393569232196e-04]),
            (3, [ 3.7215583393753382e-01, 0.0                   , 7.2685117892496267e-04]),
            (3, [ 4.2868095751956958e-01, 0.0                   , 7.4226375342086287e-04]),
            (3, [ 4.8225101282829941e-01, 0.0                   , 7.5095450358412142e-04]),
            (3, [ 5.3206793335662628e-01, 0.0                   , 7.5485350577184009e-04]),
            (3, [ 6.1729981953942736e-01, 0.0                   , 7.5540889697740007e-04]),
            (3, [ 6.5106798491274809e-01, 0.0                   , 7.5531471744428084e-04]),
            (3, [ 6.7773152516873603e-01, 0.0                   , 7.5647676532922974e-04]),
            (3, [ 6.9631094106487412e-01, 0.0                   , 7.5879918085187297e-04]),
            (3, [ 7.0589350098317494e-01, 0.0                   , 7.6082618320330272e-04]),
            (4, [ 9.9555461940918566e-01, 0.0                   , 4.0216804478749159e-04]),
            (4, [ 9.7341159017942092e-01, 0.0                   , 5.8048717939459637e-04]),
            (4, [ 9.2756937323886257e-01, 0.0                   , 6.7921519559451589e-04]),
            (4, [ 8.5680224227951030e-01, 0.0                   , 7.3367412112862939e-04]),
            (4, [ 7.6234955537193716e-01, 0.0                   , 7.5818663009896085e-04]),
            (5, [ 5.7075229088922230e-01, 4.3870280398895012e-01, 7.5382578598007428e-04]),
            (5, [ 5.1964633884030831e-01, 3.8589084147626168e-01, 7.4835172470531233e-04]),
            (5, [ 4.6463375312153510e-01, 3.3019373723438539e-01, 7.3717636611120589e-04]),
            (5, [ 4.0639016975576908e-01, 2.7254235735637772e-01, 7.1834488957569337e-04]),
            (5, [ 3.4563294666430872e-01, 2.1395102374952499e-01, 6.8958155298221913e-04]),
            (5, [ 2.8313951210503319e-01, 1.5559223097866470e-01, 6.4801058017928859e-04]),
            (5, [ 2.1976820229253299e-01, 9.8928789796860969e-02, 5.8975588965946358e-04]),
            (5, [ 1.5646960986503550e-01, 4.5986429106755100e-02, 5.0957088492473461e-04]),
            (5, [ 6.0273566737212947e-01, 3.3766251401734260e-01, 7.5369064289097548e-04]),
            (5, [ 5.4960323202550965e-01, 2.8223013097279881e-01, 7.4725059655751181e-04]),
            (5, [ 4.9217077552345673e-01, 2.2486323425925400e-01, 7.3430171322796977e-04]),
            (5, [ 4.3094229985984828e-01, 1.6662247234564789e-01, 7.1308715821774451e-04]),
            (5, [ 3.6641081823136717e-01, 1.0869649018221690e-01, 6.8170220321127763e-04]),
            (5, [ 2.9901890577584361e-01, 5.2519897841200848e-02, 6.3809411456041212e-04]),
            (5, [ 6.2687240131449984e-01, 2.2975236575500230e-01, 7.5503813779203102e-04]),
            (5, [ 5.7073241448346068e-01, 1.7230806070938001e-01, 7.4786466401448022e-04]),
            (5, [ 5.0963609019603651e-01, 1.1402384653905130e-01, 7.3359187206012205e-04]),
            (5, [ 4.4387299383124562e-01, 5.6115220958825367e-02, 7.1101205276581181e-04]),
            (5, [ 6.4199784710823893e-01, 1.1641744231408729e-01, 7.5713639786895008e-04]),
            (5, [ 5.8172180618026115e-01, 5.7975895314452193e-02, 7.4899083290792335e-04]),
        ],
        1730 => &[
            (0, [ 0.0                   , 0.0                   , 6.3090494374209763e-05]),
            (1, [ 0.0                   , 0.0                   , 6.3982877055717476e-04]),
            (2, [ 0.0                   , 0.0                   , 6.3571850735307195e-04]),
            (3, [ 2.8609231261946620e-02, 0.0                   , 2.2212071621881681e-04]),
            (3, [ 7.1425567677115220e-02, 0.0                   , 3.4757840222868479e-04]),
            (3, [ 1.2091995409955590e-01, 0.0                   , 4.3507424435898040e-04]),
            (3, [ 1.7386731065943789e-01, 0.0                   , 4.9785691365221267e-04]),
            (3, [ 2.2846454384677339e-01, 0.0                   , 5.4350362219980533e-04]),
            (3, [ 2.8348076717015119e-01, 0.0                   , 5.7659133882195421e-04]),
            (3, [ 3.3796801454673392e-01, 0.0                   , 6.0012003592260028e-04]),
            (3, [ 3.9113554548195367e-01, 0.0                   , 6.1621781727175121e-04]),
            (3, [ 4.4228603530014032e-01, 0.0                   , 6.2652181524384845e-04]),
            (3, [ 4.9077815687260568e-01, 0.0                   , 6.3239871609742121e-04]),
            (3, [ 5.3600061532114684e-01, 0.0                   , 6.3507678515405694e-04]),
            (3, [ 6.1421059735966033e-01, 0.0                   , 6.3543627752971066e-04]),
            (3, [ 6.4593003879775035e-01, 0.0                   , 6.3523024627062355e-04]),
            (3, [ 6.7180561250892246e-01, 0.0                   , 6.3581178814179717e-04]),
            (3, [ 6.9108885331862535e-01, 0.0                   , 6.3731015903101165e-04]),
            (3, [ 7.0304674168232517e-01, 0.0                   , 6.3904289613686647e-04]),
            (4, [ 8.3549511663546461e-02, 0.0                   , 3.1869134499465759e-04]),
            (4, [ 2.0501430090994860e-01, 0.0                   , 4.6780285585917110e-04]),
            (4, [ 3.3702082907066372e-01, 0.0                   , 5.5388296975986259e-04]),
            (4, [ 4.6890514842339631e-01, 0.0                   , 6.0444759071904761e-04]),
            (4, [ 5.9394004245573340e-01, 0.0                   , 6.3135751035090122e-04]),
            (5, [ 1.3949833118322610e-01, 4.0975811620503427e-02, 4.0786264318556302e-04]),
            (5, [ 1.9679991804850139e-01, 8.8519873912933478e-02, 4.7599330578127250e-04]),
            (5, [ 2.5461837325489672e-01, 1.3976801829698191e-01, 5.2681511864134396e-04]),
            (5, [ 3.1212810747138747e-01, 1.9294525422265260e-01, 5.6430485605073156e-04]),
            (5, [ 3.6859810785024921e-01, 2.4678983370615620e-01, 5.9145010766130726e-04]),
            (5, [ 4.2337603215478559e-01, 3.0031041247854090e-01, 6.1045612578741954e-04]),
            (5, [ 4.7586712360592459e-01, 3.5266843281750332e-01, 6.2302528607078060e-04]),
            (5, [ 5.2551785797964634e-01, 4.0311348611457132e-01, 6.3056187617607957e-04]),
            (5, [ 5.7180256337345892e-01, 4.5094264483423507e-01, 6.3430927675978892e-04]),
            (5, [ 2.6869277727234148e-01, 4.7113225024232479e-02, 5.1762689457378265e-04]),
            (5, [ 3.3060068199048093e-01, 9.7844873039426947e-02, 5.5648403133136924e-04]),
            (5, [ 3.9049068505949830e-01, 1.5053958100252729e-01, 5.8564266710389799e-04]),
            (5, [ 4.4799579519043897e-01, 2.0397281562960501e-01, 6.0663869257770911e-04]),
            (5, [ 5.0270768489197803e-01, 2.5715299411211068e-01, 6.2088249622344581e-04]),
            (5, [ 5.5420873922602165e-01, 3.0921913758156699e-01, 6.2963142978229066e-04]),
            (5, [ 6.0208508873751865e-01, 3.5938075061302760e-01, 6.3404237567918592e-04]),
            (5, [ 4.0198514091795939e-01, 5.0633899343786710e-02, 5.8296276771073420e-04]),
            (5, [ 4.6356145674498000e-01, 1.0324222691606121e-01, 6.0486933760811102e-04]),
            (5, [ 5.2158609315915749e-01, 1.5663220940062539e-01, 6.2023623177324613e-04]),
            (5, [ 5.7582024990992708e-01, 2.0980828274910990e-01, 6.2990053284037791e-04]),
            (5, [ 6.2598936838767949e-01, 2.6188241145533908e-01, 6.3477223906093525e-04]),
            (5, [ 5.3137951248118909e-01, 5.2632450193385562e-02, 6.2037789812388340e-04]),
            (5, [ 5.8933179559319948e-01, 1.0610597309820050e-01, 6.3084146712399794e-04]),
            (5, [ 6.4262463212158005e-01, 1.5941715640342211e-01, 6.3627064669594981e-04]),
            (5, [ 6.5119043673761134e-01, 5.3547895365655400e-02, 6.3754141703332328e-04]),
        ],
        2030 => &[
            (0, [ 0.0                   , 0.0                   , 4.6560318991974309e-05]),
            (2, [ 0.0                   , 0.0                   , 5.4215491952955069e-04]),
            (3, [ 2.5408353368143479e-02, 0.0                   , 1.7785221333465530e-04]),
            (3, [ 6.3993228005049155e-02, 0.0                   , 2.8113254056827961e-04]),
            (3, [ 1.0882694698041250e-01, 0.0                   , 3.5488963126314592e-04]),
            (3, [ 1.5706707988182869e-01, 0.0                   , 4.0903108971733639e-04]),
            (3, [ 2.0711639322825140e-01, 0.0                   , 4.4932861341699648e-04]),
            (3, [ 2.5789140444508440e-01, 0.0                   , 4.7937284479627232e-04]),
            (3, [ 3.0856875581696230e-01, 0.0                   , 5.0154153191642647e-04]),
            (3, [ 3.5847197062670239e-01, 0.0                   , 5.1751273726779372e-04]),
            (3, [ 4.0701355944287088e-01, 0.0                   , 5.2855222620810190e-04]),
            (3, [ 4.5366186262226382e-01, 0.0                   , 5.3568327037139618e-04]),
            (3, [ 4.9791956864635772e-01, 0.0                   , 5.3979147361751703e-04]),
            (3, [ 5.3930751111269992e-01, 0.0                   , 5.4168994415999296e-04]),
            (3, [ 6.1156176768439163e-01, 0.0                   , 5.4193084768899380e-04]),
            (3, [ 6.4143084351601587e-01, 0.0                   , 5.4169369020305963e-04]),
            (3, [ 6.6640994127216069e-01, 0.0                   , 5.4195443387031639e-04]),
            (3, [ 6.8591617712149133e-01, 0.0                   , 5.4289836566309745e-04]),
            (3, [ 6.9936255935038905e-01, 0.0                   , 5.4422865000981931e-04]),
            (3, [ 7.0623933877193801e-01, 0.0                   , 5.4522503450573007e-04]),
            (4, [ 7.4790281683497634e-02, 0.0                   , 2.5680024977285302e-04]),
            (4, [ 1.8489511539693659e-01, 0.0                   , 3.8272117002921449e-04]),
            (4, [ 3.0595290665813052e-01, 0.0                   , 4.5794915619178241e-04]),
            (4, [ 4.2855561010213622e-01, 0.0                   , 5.0420039690835742e-04]),
            (4, [ 5.4687586534965260e-01, 0.0                   , 5.3127088899760245e-04]),
            (4, [ 6.5658219783434391e-01, 0.0                   , 5.4384017907471174e-04]),
            (5, [ 1.2539015723671171e-01, 3.6819172264396412e-02, 3.3160418731973442e-04]),
            (5, [ 1.7757215103839410e-01, 7.9824876072133011e-02, 3.8991135671537713e-04]),
            (5, [ 2.3056933582161140e-01, 1.2646409665923350e-01, 4.3433433272013089e-04]),
            (5, [ 2.8365028459920633e-01, 1.7515856834189569e-01, 4.6794152623189192e-04]),
            (5, [ 3.3617947462325898e-01, 2.2479959076326700e-01, 4.9308479816310307e-04]),
            (5, [ 3.8759791722648240e-01, 2.7452992574222462e-01, 5.1150318675400913e-04]),
            (5, [ 4.3740193169990738e-01, 3.2363734824411178e-01, 5.2452171484573666e-04]),
            (5, [ 4.8512758433400222e-01, 3.7149678594367408e-01, 5.3320414998953209e-04]),
            (5, [ 5.3033918038068684e-01, 4.1753536463217450e-01, 5.3845831260215425e-04]),
            (5, [ 5.7261973805962874e-01, 4.6120844063554611e-01, 5.4110672107988522e-04]),
            (5, [ 2.4315207325648630e-01, 4.2580401330439520e-02, 4.2597973914687142e-04]),
            (5, [ 3.0020968008958693e-01, 8.8694243067227216e-02, 4.6049313684600211e-04]),
            (5, [ 3.5585544574574318e-01, 1.3688117065106550e-01, 4.8718148782552021e-04]),
            (5, [ 4.0977825370488868e-01, 1.8607399850150330e-01, 5.0722429100748853e-04]),
            (5, [ 4.6163376660674582e-01, 2.3542350773958531e-01, 5.2170698452353500e-04]),
            (5, [ 5.1107070084178741e-01, 2.8420749213470109e-01, 5.3157859662803105e-04]),
            (5, [ 5.5774152861637949e-01, 3.3177844149841018e-01, 5.3768337087589050e-04]),
            (5, [ 6.0130604313669500e-01, 3.7752990020407001e-01, 5.4080320920695207e-04]),
            (5, [ 3.6615967672617811e-01, 4.5993678871645918e-02, 4.8427449179048662e-04]),
            (5, [ 4.2376331535065809e-01, 9.4048937736544214e-02, 5.0489260761881296e-04]),
            (5, [ 4.7863284546584522e-01, 1.4313771090919711e-01, 5.2026079804783727e-04]),
            (5, [ 5.3057020767897745e-01, 1.9241863888435701e-01, 5.3099323883257427e-04]),
            (5, [ 5.7934362242317883e-01, 2.4115909447751899e-01, 5.3774197708952084e-04]),
            (5, [ 6.2470690170947474e-01, 2.8868714915836052e-01, 5.4116963316777167e-04]),
            (5, [ 4.8743155525352039e-01, 4.8049787749532058e-02, 5.1979962932824201e-04]),
            (5, [ 5.4273373220590526e-01, 9.7168571993666644e-02, 5.3111208366229447e-04]),
            (5, [ 5.9434937472466998e-01, 1.4652058397950549e-01, 5.3843093199569514e-04]),
            (5, [ 6.4213140335649432e-01, 1.9535794498035741e-01, 5.4218595040518862e-04]),
            (5, [ 6.0206283747139799e-01, 4.9163750157381080e-02, 5.3909483550463135e-04]),
            (5, [ 6.5292225298568807e-01, 9.8616215401270052e-02, 5.4333127050278454e-04]),
        ],
        2354 => &[
            (0, [ 0.0                   , 0.0                   , 3.9226162706652920e-05]),
            (1, [ 0.0                   , 0.0                   , 4.7038317508544240e-04]),
            (2, [ 0.0                   , 0.0                   , 4.6782028012821362e-04]),
            (3, [ 2.2900246465305890e-02, 0.0                   , 1.4378322289799000e-04]),
            (3, [ 5.7790866522712842e-02, 0.0                   , 2.3035724935776441e-04]),
            (3, [ 9.8631035763759839e-02, 0.0                   , 2.9331107524474542e-04]),
            (3, [ 1.4281557929821850e-01, 0.0                   , 3.4029059983598382e-04]),
            (3, [ 1.8889781166014630e-01, 0.0                   , 3.7591384668703718e-04]),
            (3, [ 2.3590916829702099e-01, 0.0                   , 4.0306384478997978e-04]),
            (3, [ 2.8312288337061708e-01, 0.0                   , 4.2365914322422112e-04]),
            (3, [ 3.2994958579666928e-01, 0.0                   , 4.3905226569467459e-04]),
            (3, [ 3.7588408026607961e-01, 0.0                   , 4.5025234666262471e-04]),
            (3, [ 4.2047518310094800e-01, 0.0                   , 4.5805777277835411e-04]),
            (3, [ 4.6330685187510512e-01, 0.0                   , 4.6313916166158988e-04]),
            (3, [ 5.0398494745073130e-01, 0.0                   , 4.6609289536986759e-04]),
            (3, [ 5.4212657934407471e-01, 0.0                   , 4.6747518079369530e-04]),
            (3, [ 6.0926602305573097e-01, 0.0                   , 4.6764149039329198e-04]),
            (3, [ 6.3746542049848687e-01, 0.0                   , 4.6740864923478702e-04]),
            (3, [ 6.6151364726098916e-01, 0.0                   , 4.6749285394832071e-04]),
            (3, [ 6.8094872859581268e-01, 0.0                   , 4.6807489796864472e-04]),
            (3, [ 6.9529800216651960e-01, 0.0                   , 4.6904498063890401e-04]),
            (3, [ 7.0412454976953998e-01, 0.0                   , 4.6998770758608179e-04]),
            (4, [ 6.7440330883060645e-02, 0.0                   , 2.0999422810691760e-04]),
            (4, [ 1.6786844853341659e-01, 0.0                   , 3.1722691507128040e-04]),
            (4, [ 2.7935590495396129e-01, 0.0                   , 3.8320513585465230e-04]),
            (4, [ 3.9352642180576392e-01, 0.0                   , 4.2521938181469852e-04]),
            (4, [ 5.0526292682325580e-01, 0.0                   , 4.5138079637549997e-04]),
            (4, [ 6.1079053154375307e-01, 0.0                   , 4.6577974691141779e-04]),
            (5, [ 1.1350810398435240e-01, 3.3319548846625878e-02, 2.7333628005228361e-04]),
            (5, [ 1.6128666260993779e-01, 7.2471674654365381e-02, 3.2354853684635589e-04]),
            (5, [ 2.1007865501682049e-01, 1.1515391108497450e-01, 3.6249087260134527e-04]),
            (5, [ 2.5922820094599419e-01, 1.5994910971436771e-01, 3.9255400707128278e-04]),
            (5, [ 3.0817405613202031e-01, 2.0586999560280270e-01, 4.1561297811162348e-04]),
            (5, [ 3.5642897815781638e-01, 2.5216249535029112e-01, 4.3306449846232631e-04]),
            (5, [ 4.0355872882407029e-01, 2.9820907857976742e-01, 4.4596777259213119e-04]),
            (5, [ 4.4916711963739031e-01, 3.4347620872357332e-01, 4.5515930044567952e-04]),
            (5, [ 4.9288547829174889e-01, 3.8748313572034371e-01, 4.6133414627499178e-04]),
            (5, [ 5.3436467919589881e-01, 4.2978148217469259e-01, 4.6510196182698057e-04]),
            (5, [ 5.7326832165309904e-01, 4.6994022609435371e-01, 4.6702495361006252e-04]),
            (5, [ 2.2141315832189859e-01, 3.8736020406438948e-02, 3.5495555764417081e-04]),
            (5, [ 2.7417965047500709e-01, 8.0894962569020123e-02, 3.8561082452490098e-04]),
            (5, [ 3.2597974391494849e-01, 1.2517321776208720e-01, 4.0986228457568820e-04]),
            (5, [ 3.7654411488268907e-01, 1.7062602864031851e-01, 4.2863286042689501e-04]),
            (5, [ 4.2557735745305580e-01, 2.1651151473004079e-01, 4.4278021989939452e-04]),
            (5, [ 4.7277951170584298e-01, 2.6220898122252589e-01, 4.5304735114885607e-04]),
            (5, [ 5.1785468958190117e-01, 3.0717214312962010e-01, 4.6008054757031383e-04]),
            (5, [ 5.6051411920974603e-01, 3.5089989988011377e-01, 4.6445990599580168e-04]),
            (5, [ 6.0047633193525118e-01, 3.9291608761669311e-01, 4.6672744557125080e-04]),
            (5, [ 3.3528426349469492e-01, 4.2025634572880187e-02, 4.0693605180203558e-04]),
            (5, [ 3.8919716298146700e-01, 8.6143097588708500e-02, 4.2604428199191950e-04]),
            (5, [ 4.4098755655422811e-01, 1.3145008793800009e-01, 4.4086785080290632e-04]),
            (5, [ 4.9048930585924838e-01, 1.7721896573838589e-01, 4.5187481155485972e-04]),
            (5, [ 5.3750561387695495e-01, 2.2282771100502941e-01, 4.5955648753751163e-04]),
            (5, [ 5.8182557086699693e-01, 2.6771799350143860e-01, 4.6439887743158462e-04]),
            (5, [ 6.2323348581449589e-01, 3.1136750355441650e-01, 4.6688274916469459e-04]),
            (5, [ 4.4894853544920582e-01, 4.4091623783681741e-02, 4.4005418237419729e-04]),
            (5, [ 5.0151368759331505e-01, 8.9390099177484889e-02, 4.5145128901937968e-04]),
            (5, [ 5.5113005505126234e-01, 1.3518060293833650e-01, 4.5961986273475492e-04]),
            (5, [ 5.9767204098579996e-01, 1.8083703550531960e-01, 4.6486590168017808e-04]),
            (5, [ 6.4099563789893543e-01, 2.2578521923016021e-01, 4.6755020171576731e-04]),
            (5, [ 5.5812223308275144e-01, 4.5321734216371597e-02, 4.5984944764555232e-04]),
            (5, [ 6.0747059841616946e-01, 9.1174880318403137e-02, 4.6549169551520479e-04]),
            (5, [ 6.5322725373790325e-01, 1.3692942131401550e-01, 4.6847097795051372e-04]),
            (5, [ 6.5947614945004873e-01, 4.5899014872755828e-02, 4.6914455391069862e-04]),
        ],
        2702 => &[
            (0, [ 0.0                   , 0.0                   , 2.9986751498881611e-05]),
            (2, [ 0.0                   , 0.0                   , 4.0778605294953548e-04]),
            (3, [ 2.0655625388187032e-02, 0.0                   , 1.1853491925206671e-04]),
            (3, [ 5.2509181730223793e-02, 0.0                   , 1.9134086434257510e-04]),
            (3, [ 8.9934800820383756e-02, 0.0                   , 2.4528865772098968e-04]),
            (3, [ 1.3060239244360189e-01, 0.0                   , 2.8624081832887021e-04]),
            (3, [ 1.7320603885314181e-01, 0.0                   , 3.1780322582573568e-04]),
            (3, [ 2.1687270848202489e-01, 0.0                   , 3.4229456676336902e-04]),
            (3, [ 2.6095283091735860e-01, 0.0                   , 3.6127905202359219e-04]),
            (3, [ 3.0492529279389519e-01, 0.0                   , 3.7586382298185209e-04]),
            (3, [ 3.4834841380844039e-01, 0.0                   , 3.8687117988599532e-04]),
            (3, [ 3.9083215491064061e-01, 0.0                   , 3.9494299331899380e-04]),
            (3, [ 4.3202100718948139e-01, 0.0                   , 4.0060681075411561e-04]),
            (3, [ 4.7158247958900529e-01, 0.0                   , 4.0431921496727232e-04]),
            (3, [ 5.0919847940784535e-01, 0.0                   , 4.0649474958080783e-04]),
            (3, [ 5.4455801456508035e-01, 0.0                   , 4.0752456198131520e-04]),
            (3, [ 6.0725757968417682e-01, 0.0                   , 4.0764235408935657e-04]),
            (3, [ 6.3394845057558025e-01, 0.0                   , 4.0742808622515548e-04]),
            (3, [ 6.5707182574869583e-01, 0.0                   , 4.0741637560122440e-04]),
            (3, [ 6.7625573300907094e-01, 0.0                   , 4.0776477950712461e-04]),
            (3, [ 6.9111616969237899e-01, 0.0                   , 4.0845175527825302e-04]),
            (3, [ 7.0128419116599605e-01, 0.0                   , 4.0924684592240519e-04]),
            (3, [ 7.0645592724100204e-01, 0.0                   , 4.0978726872409061e-04]),
            (4, [ 6.1235549898947653e-02, 0.0                   , 1.7389868117450281e-04]),
            (4, [ 1.5330703483123931e-01, 0.0                   , 2.6596160452801911e-04]),
            (4, [ 2.5639026052442060e-01, 0.0                   , 3.2405960081715332e-04]),
            (4, [ 3.6293469916633608e-01, 0.0                   , 3.6211959644329432e-04]),
            (4, [ 4.6839499689875380e-01, 0.0                   , 3.8688383307605392e-04]),
            (4, [ 5.6944792406579525e-01, 0.0                   , 4.0189115326931112e-04]),
            (4, [ 6.6344654309939555e-01, 0.0                   , 4.0899294329832520e-04]),
            (5, [ 1.0339585735523051e-01, 3.0345440090635840e-02, 2.2799075277064090e-04]),
            (5, [ 1.4735214124143950e-01, 6.6188030442471346e-02, 2.7152054905788968e-04]),
            (5, [ 1.9245521587059669e-01, 1.0544311289877149e-01, 3.0579178967039762e-04]),
            (5, [ 2.3810943628903281e-01, 1.4682635512388581e-01, 3.3269130524525548e-04]),
            (5, [ 2.8381217079367599e-01, 1.8944861081878861e-01, 3.5373347118900368e-04]),
            (5, [ 3.2913231333734150e-01, 2.3263742387615791e-01, 3.7005675007831289e-04]),
            (5, [ 3.7368969787414602e-01, 2.7584858084857677e-01, 3.8252453725891219e-04]),
            (5, [ 4.1714060407600129e-01, 3.1861793319969212e-01, 3.9181251715182962e-04]),
            (5, [ 4.5916779852569151e-01, 3.6053297963037939e-01, 3.9847204199375789e-04]),
            (5, [ 4.9947338317184181e-01, 4.0121472535865088e-01, 4.0297460033382107e-04]),
            (5, [ 5.3777318304450961e-01, 4.4030500255706922e-01, 4.0574286321566269e-04]),
            (5, [ 5.7379178300013312e-01, 4.7745659042774830e-01, 4.0717192741148572e-04]),
            (5, [ 2.0273235862713890e-01, 3.5441225049761473e-02, 2.9902369506641191e-04]),
            (5, [ 2.5169423751872733e-01, 7.4183043886463282e-02, 3.2629517342128779e-04]),
            (5, [ 3.0002279952571809e-01, 1.1505027457271860e-01, 3.4826346082424131e-04]),
            (5, [ 3.4748066910463421e-01, 1.5719633712093639e-01, 3.6565966817008919e-04]),
            (5, [ 3.9381031803592093e-01, 1.9996318772471000e-01, 3.7917404677942178e-04]),
            (5, [ 4.3875195904557029e-01, 2.4280734578465349e-01, 3.8940344501569050e-04]),
            (5, [ 4.8205039600777871e-01, 2.8525751329061549e-01, 3.9686002455083708e-04]),
            (5, [ 5.2345737784751012e-01, 3.2688842086746389e-01, 4.0199313514200502e-04]),
            (5, [ 5.6273186472352821e-01, 3.6730333216759392e-01, 4.0521088012785989e-04]),
            (5, [ 5.9963906071569539e-01, 4.0612115518302899e-01, 4.0689786139409340e-04]),
            (5, [ 3.0847807537919469e-01, 3.8601255231000588e-02, 3.4542753513197040e-04]),
            (5, [ 3.5899882759202228e-01, 7.9289389871048666e-02, 3.6299635370079200e-04]),
            (5, [ 4.0786284158819730e-01, 1.2126146430300870e-01, 3.7701872338898729e-04]),
            (5, [ 4.5492872588897348e-01, 1.6387708273826929e-01, 3.8786086136943782e-04]),
            (5, [ 5.0002785129572791e-01, 2.0659657982601759e-01, 3.9590652702212740e-04]),
            (5, [ 5.4297850449281992e-01, 2.4894363788522350e-01, 4.0152869754635700e-04]),
            (5, [ 5.8359398504917115e-01, 2.9048113689468907e-01, 4.0508667856147169e-04]),
            (5, [ 6.2168703534448555e-01, 3.3079419576666091e-01, 4.0693201850519129e-04]),
            (5, [ 4.1511046627090908e-01, 4.0648291460525537e-02, 3.7601209640627630e-04]),
            (5, [ 4.6498042750092178e-01, 8.2584245472947557e-02, 3.8709695644180642e-04]),
            (5, [ 5.1246957570096618e-01, 1.2518419620272889e-01, 3.9552877905340552e-04]),
            (5, [ 5.5747111006062244e-01, 1.6791075059763311e-01, 4.0153619113026680e-04]),
            (5, [ 5.9985973332872267e-01, 2.1028050573587151e-01, 4.0538369867195481e-04]),
            (5, [ 6.3950071485166005e-01, 2.5184180877741069e-01, 4.0735786732991168e-04]),
            (5, [ 5.1884562247462518e-01, 4.1943216760775177e-02, 3.9546283792314061e-04]),
            (5, [ 5.6641907079427778e-01, 8.4576615519214984e-02, 4.0176455088475300e-04]),
            (5, [ 6.1104643532831526e-01, 1.2736529325193960e-01, 4.0590303486512928e-04]),
            (5, [ 6.5264303020515635e-01, 1.6981732390763540e-01, 4.0805658094848800e-04]),
            (5, [ 6.1675518803775475e-01, 4.2663988515488638e-02, 4.0630187536646510e-04]),
            (5, [ 6.6071954183553827e-01, 8.5519258142383495e-02, 4.0871912927996709e-04]),
        ],
        3074 => &[
            (0, [ 0.0                   , 0.0                   , 2.5990959537547339e-05]),
            (1, [ 0.0                   , 0.0                   , 3.6031340896875412e-04]),
            (2, [ 0.0                   , 0.0                   , 3.5860679744124469e-04]),
            (3, [ 1.8861085187233919e-02, 0.0                   , 9.8315284743858805e-05]),
            (3, [ 4.8002172446253030e-02, 0.0                   , 1.6050231079544499e-04]),
            (3, [ 8.2449220583972416e-02, 0.0                   , 2.0722001314640989e-04]),
            (3, [ 1.2004083624840230e-01, 0.0                   , 2.4312976188141871e-04]),
            (3, [ 1.5957735308099649e-01, 0.0                   , 2.7118190644967070e-04]),
            (3, [ 2.0026359734340640e-01, 0.0                   , 2.9327620383211159e-04]),
            (3, [ 2.4151275901399821e-01, 0.0                   , 3.1070325141973682e-04]),
            (3, [ 2.8285841584584770e-01, 0.0                   , 3.2438080589212130e-04]),
            (3, [ 3.2390910153381380e-01, 0.0                   , 3.3498990913740300e-04]),
            (3, [ 3.6432250979621938e-01, 0.0                   , 3.4305806885052178e-04]),
            (3, [ 4.0378970836918021e-01, 0.0                   , 3.4901241092903429e-04]),
            (3, [ 4.4202475151941267e-01, 0.0                   , 3.5321489485619551e-04]),
            (3, [ 4.7875725384649381e-01, 0.0                   , 3.5598626690628329e-04]),
            (3, [ 5.1372652512752337e-01, 0.0                   , 3.5762243175514112e-04]),
            (3, [ 5.4667640566546105e-01, 0.0                   , 3.5840505330860759e-04]),
            (3, [ 6.0548594208135353e-01, 0.0                   , 3.5849035813732242e-04]),
            (3, [ 6.3081067017645620e-01, 0.0                   , 3.5829918790405860e-04]),
            (3, [ 6.5303692301795835e-01, 0.0                   , 3.5823711879631249e-04]),
            (3, [ 6.7186095246111577e-01, 0.0                   , 3.5843536311223499e-04]),
            (3, [ 6.8696764998940130e-01, 0.0                   , 3.5891201665177850e-04]),
            (3, [ 6.9804670772407484e-01, 0.0                   , 3.5954457045316008e-04]),
            (3, [ 7.0482417212505222e-01, 0.0                   , 3.6009435571110742e-04]),
            (4, [ 5.5911052220582319e-02, 0.0                   , 1.4564470967420390e-04]),
            (4, [ 1.4073840785139161e-01, 0.0                   , 2.2523701882837821e-04]),
            (4, [ 2.3640354389763091e-01, 0.0                   , 2.7661354434748971e-04]),
            (4, [ 3.3606027378181702e-01, 0.0                   , 3.1107294915008510e-04]),
            (4, [ 4.3562926300546650e-01, 0.0                   , 3.3425067123033913e-04]),
            (4, [ 5.3215694152561743e-01, 0.0                   , 3.4919818340268600e-04]),
            (4, [ 6.2329563050405545e-01, 0.0                   , 3.5760036043489321e-04]),
            (5, [ 9.4698700868384694e-02, 2.7787483873094699e-02, 1.9219213057885639e-04]),
            (5, [ 1.3531703005681411e-01, 6.0765698786283642e-02, 2.3014582164956321e-04]),
            (5, [ 1.7716794817260770e-01, 9.7030727627110402e-02, 2.6042485495228929e-04]),
            (5, [ 2.1970666642317510e-01, 1.3541124585247619e-01, 2.8452754258706970e-04]),
            (5, [ 2.6247835573749267e-01, 1.7509964797440999e-01, 3.0368708979748398e-04]),
            (5, [ 3.0509695212144422e-01, 2.1548969074498020e-01, 3.1884148322980658e-04]),
            (5, [ 3.4722526371960211e-01, 2.5609546257401522e-01, 3.3070464147220893e-04]),
            (5, [ 3.8856102190263597e-01, 2.9650700506240962e-01, 3.3983309690313601e-04]),
            (5, [ 4.2882737760627648e-01, 3.3636414887344968e-01, 3.4667578997053729e-04]),
            (5, [ 4.6776624713029480e-01, 3.7534000298367881e-01, 3.5160959232300538e-04]),
            (5, [ 5.0513335895533595e-01, 4.1312975221442860e-01, 3.5496451840484860e-04]),
            (5, [ 5.4069421458104916e-01, 4.4944237760817951e-01, 3.5704159694413919e-04]),
            (5, [ 5.7422041225764575e-01, 4.8399389588415020e-01, 3.5812517984961181e-04]),
            (5, [ 1.8654070272251880e-01, 3.2591448510707957e-02, 2.5434913299133481e-04]),
            (5, [ 2.3211864536894319e-01, 6.8356795052973429e-02, 2.7867110513307762e-04]),
            (5, [ 2.7731591425238822e-01, 1.0622848644519890e-01, 2.9855523610836787e-04]),
            (5, [ 3.2192001922372537e-01, 1.4544044093230471e-01, 3.1458679291540391e-04]),
            (5, [ 3.6570325939440290e-01, 1.8540182825825099e-01, 3.2732906620676089e-04]),
            (5, [ 4.0843767783636220e-01, 2.2562974120147500e-01, 3.3727055119435012e-04]),
            (5, [ 4.4990049457514270e-01, 2.6571044250008963e-01, 3.4482744378515101e-04]),
            (5, [ 4.8987581413263348e-01, 3.0527554876315571e-01, 3.5035927830485828e-04]),
            (5, [ 5.2815474422663089e-01, 3.4398639206454229e-01, 3.5418547926631622e-04]),
            (5, [ 5.6453469898139919e-01, 3.8152294561219141e-01, 3.5659955179094278e-04]),
            (5, [ 5.9881812521598476e-01, 4.1757524209667340e-01, 3.5788020783028980e-04]),
            (5, [ 2.8504254244716032e-01, 3.5621495098625361e-02, 2.9586445928609821e-04]),
            (5, [ 3.3246194330278761e-01, 7.3303188868710956e-02, 3.1195481291168353e-04]),
            (5, [ 3.7858483330762821e-01, 1.1232262960084720e-01, 3.2507452250059841e-04]),
            (5, [ 4.2328910285621152e-01, 1.5210841933377081e-01, 3.3551534159352082e-04]),
            (5, [ 4.6642870508297218e-01, 1.9218444592236100e-01, 3.4358475685493281e-04]),
            (5, [ 5.0784584937357258e-01, 2.3213609896783030e-01, 3.4957868316224880e-04]),
            (5, [ 5.4737798162041795e-01, 2.7158864863605198e-01, 3.5377678055346212e-04]),
            (5, [ 5.8486171338113757e-01, 3.1019247075713552e-01, 3.5644598154214280e-04]),
            (5, [ 6.2013482815848875e-01, 3.4761210528909731e-01, 3.5784640612254682e-04]),
            (5, [ 3.8521911853878710e-01, 3.7632248800351077e-02, 3.2397487628362123e-04]),
            (5, [ 4.3250250610734231e-01, 7.6595819356371345e-02, 3.3454917841742868e-04]),
            (5, [ 4.7784862297344899e-01, 1.1633813060839000e-01, 3.4291261773017822e-04]),
            (5, [ 5.2116636930089999e-01, 1.5638905987528989e-01, 3.4924203430974210e-04]),
            (5, [ 5.6234695048537031e-01, 1.9633208101492000e-01, 3.5373990502352568e-04]),
            (5, [ 6.0127181886592462e-01, 2.3578474072587380e-01, 3.5662091526591719e-04]),
            (5, [ 6.3781792063901166e-01, 2.7438461212440601e-01, 3.5810843219197822e-04]),
            (5, [ 4.8369364602145343e-01, 3.8959026107390243e-02, 3.4265221175915121e-04]),
            (5, [ 5.2937925626837967e-01, 7.8712468193126398e-02, 3.4918487701213788e-04]),
            (5, [ 5.7262812531000329e-01, 1.1879638082029810e-01, 3.5393182352314761e-04]),
            (5, [ 6.1336587761690675e-01, 1.5879147080617870e-01, 3.5702314384586939e-04]),
            (5, [ 6.5150854918653067e-01, 1.9830585752276461e-01, 3.5862073350517140e-04]),
            (5, [ 5.7786927160649759e-01, 3.9772096897915422e-02, 3.5411962051640249e-04]),
            (5, [ 6.2079042880861923e-01, 7.9901575929811522e-02, 3.5742969115739530e-04]),
            (5, [ 6.6086881710468015e-01, 1.1996713087543090e-01, 3.5919932798189630e-04]),
            (5, [ 6.6562630894891295e-01, 4.0159559578059688e-02, 3.5958550346619971e-04]),
        ],
        3470 => &[
            (0, [ 0.0                   , 0.0                   , 2.0403827308263299e-05]),
            (2, [ 0.0                   , 0.0                   , 3.1781497038895439e-04]),
            (3, [ 1.7214208329062331e-02, 0.0                   , 8.2881151280761106e-05]),
            (3, [ 4.4088753749817702e-02, 0.0                   , 1.3608831925229539e-04]),
            (3, [ 7.5946808138786806e-02, 0.0                   , 1.7668544545426621e-04]),
            (3, [ 1.1083353592047990e-01, 0.0                   , 2.0831531612301531e-04]),
            (3, [ 1.4765170543885670e-01, 0.0                   , 2.3332795446571580e-04]),
            (3, [ 1.8567318708606151e-01, 0.0                   , 2.5328095399302470e-04]),
            (3, [ 2.2436340994288209e-01, 0.0                   , 2.6924721842111579e-04]),
            (3, [ 2.6330068816627272e-01, 0.0                   , 2.8199499468118847e-04]),
            (3, [ 3.0213409049162832e-01, 0.0                   , 2.9209535939730302e-04]),
            (3, [ 3.4055940480300889e-01, 0.0                   , 2.9998897829483523e-04]),
            (3, [ 3.7830444340073721e-01, 0.0                   , 3.0602921204969018e-04]),
            (3, [ 4.1511947674079103e-01, 0.0                   , 3.1051091675221918e-04]),
            (3, [ 4.5077057664432568e-01, 0.0                   , 3.1369023875503119e-04]),
            (3, [ 4.8503460565731871e-01, 0.0                   , 3.1579846524546320e-04]),
            (3, [ 5.1769508177924695e-01, 0.0                   , 3.1705165184254218e-04]),
            (3, [ 5.4853842408209885e-01, 0.0                   , 3.1765684256337550e-04]),
            (3, [ 6.0391172389433079e-01, 0.0                   , 3.1771984112070618e-04]),
            (3, [ 6.2799566555731134e-01, 0.0                   , 3.1755194923947328e-04]),
            (3, [ 6.4936361695689515e-01, 0.0                   , 3.1746549526347559e-04]),
            (3, [ 6.6776441177045043e-01, 0.0                   , 3.1756764154676541e-04]),
            (3, [ 6.8293685721156239e-01, 0.0                   , 3.1789234178354099e-04]),
            (3, [ 6.9461958181841210e-01, 0.0                   , 3.1837882875319088e-04]),
            (3, [ 7.0257115420570260e-01, 0.0                   , 3.1887551519188068e-04]),
            (3, [ 7.0660047671401194e-01, 0.0                   , 3.1919168893138490e-04]),
            (4, [ 5.1325376899460623e-02, 0.0                   , 1.2317796117445080e-04]),
            (4, [ 1.2979946613312249e-01, 0.0                   , 1.9246613738398800e-04]),
            (4, [ 2.1888520494013070e-01, 0.0                   , 2.3808818674034239e-04]),
            (4, [ 3.1231748249034569e-01, 0.0                   , 2.6931006630378850e-04]),
            (4, [ 4.0640376207381951e-01, 0.0                   , 2.9086733828343657e-04]),
            (4, [ 4.9849583969447819e-01, 0.0                   , 3.0539146193815349e-04]),
            (4, [ 5.8649750460213645e-01, 0.0                   , 3.1439166841477770e-04]),
            (4, [ 6.6867116345801747e-01, 0.0                   , 3.1870422440553631e-04]),
            (5, [ 8.7157387808359493e-02, 2.5571752333675781e-02, 1.6352195358697899e-04]),
            (5, [ 1.2483831231340070e-01, 5.6048233833766808e-02, 1.9681099176960701e-04]),
            (5, [ 1.6380626933833781e-01, 8.9685686019007643e-02, 2.2367543422499741e-04]),
            (5, [ 2.0355862033731759e-01, 1.2540866519762789e-01, 2.4531866870171809e-04]),
            (5, [ 2.4367989752937741e-01, 1.6247801501620121e-01, 2.6275517915805410e-04]),
            (5, [ 2.8382075077738061e-01, 2.0034223426832079e-01, 2.7676548601522199e-04]),
            (5, [ 3.2367875022176917e-01, 2.3856280262552629e-01, 2.8794670277658950e-04]),
            (5, [ 3.6298495548406912e-01, 2.7677311487835782e-01, 2.9676399189187020e-04]),
            (5, [ 4.0149480819920869e-01, 3.1465423082453092e-01, 3.0359006846603510e-04]),
            (5, [ 4.3898183792602252e-01, 3.5191964158950878e-01, 3.0873382372983082e-04]),
            (5, [ 4.7523311436743770e-01, 3.8830509840236538e-01, 3.1246088388601671e-04]),
            (5, [ 5.1004573183740176e-01, 4.2356134239086490e-01, 3.1500842942267432e-04]),
            (5, [ 5.4322383889548675e-01, 4.5744847171962200e-01, 3.1659583985984018e-04]),
            (5, [ 5.7457586850724418e-01, 4.8973116392555238e-01, 3.1743204409573719e-04]),
            (5, [ 1.7239814375928089e-01, 3.0106305978811049e-02, 2.1821889098125991e-04]),
            (5, [ 2.1495532578445969e-01, 6.3260315542046947e-02, 2.3997279339214449e-04]),
            (5, [ 2.5732560812474220e-01, 9.8485669802586315e-02, 2.5797961335146519e-04]),
            (5, [ 2.9931637512381060e-01, 1.3508359523842661e-01, 2.7271140526235349e-04]),
            (5, [ 3.4072380051480000e-01, 1.7251840554421810e-01, 2.8463276562813548e-04]),
            (5, [ 3.8134549784832639e-01, 2.1035592797307251e-01, 2.9414911020513338e-04]),
            (5, [ 4.2098481044233432e-01, 2.4822787745548600e-01, 3.0160494921361067e-04]),
            (5, [ 4.5945196999963001e-01, 2.8580995099828832e-01, 3.0729497261756478e-04]),
            (5, [ 4.9656401661859301e-01, 3.2280756599154281e-01, 3.1147681428864599e-04]),
            (5, [ 5.3214416555715616e-01, 3.5894599072041511e-01, 3.1438236736662230e-04]),
            (5, [ 5.6602084385821660e-01, 3.9396300888643099e-01, 3.1622697646615350e-04]),
            (5, [ 5.9802643159643643e-01, 4.2760299229490889e-01, 3.1721646637598210e-04]),
            (5, [ 2.6442158523507331e-01, 3.3009394290725518e-02, 2.5545753989674353e-04]),
            (5, [ 3.0901137434430631e-01, 6.8038876500785009e-02, 2.7017040691356770e-04]),
            (5, [ 3.5258710791978082e-01, 1.0443261362067090e-01, 2.8236934134689398e-04]),
            (5, [ 3.9504180053540289e-01, 1.4167515975176789e-01, 2.9228984632142889e-04]),
            (5, [ 4.3624756634301631e-01, 1.7934086105048211e-01, 3.0018290621624280e-04]),
            (5, [ 4.7606618121458538e-01, 2.1706307501757219e-01, 3.0628908645429528e-04]),
            (5, [ 5.1435510425121034e-01, 2.5451451578158069e-01, 3.1083282792647459e-04]),
            (5, [ 5.5097090269355975e-01, 2.9139401017066008e-01, 3.1402431462012448e-04]),
            (5, [ 5.8577110303294277e-01, 3.2741699109107048e-01, 3.1606380309771301e-04]),
            (5, [ 6.1861499174043921e-01, 3.6230813293172648e-01, 3.1714628822062752e-04]),
            (5, [ 3.5868945695570642e-01, 3.4973543864500398e-02, 2.8123884160317962e-04]),
            (5, [ 4.0352666100194412e-01, 7.1297367397570949e-02, 2.9121375002880449e-04]),
            (5, [ 4.4677753123325098e-01, 1.0847586201931650e-01, 2.9932412565022060e-04]),
            (5, [ 4.8836383466085431e-01, 1.4609156892417721e-01, 3.0571017389838218e-04]),
            (5, [ 5.2819083484346008e-01, 1.8377908323699799e-01, 3.1053193262514320e-04]),
            (5, [ 5.6615426871493113e-01, 2.2120753908740209e-01, 3.1395655144281670e-04]),
            (5, [ 6.0214501020314515e-01, 2.5806828411609850e-01, 3.1615430068063661e-04]),
            (5, [ 6.3605207836100497e-01, 2.9406563620941212e-01, 3.1729859606132940e-04]),
            (5, [ 4.5216110650871960e-01, 3.6310553658670017e-02, 2.9894003369014310e-04]),
            (5, [ 4.9593656515609630e-01, 7.3483184684843494e-02, 3.0545558839476769e-04]),
            (5, [ 5.3768158040382830e-01, 1.1110876438126480e-01, 3.1047649608077023e-04]),
            (5, [ 5.7733144802437675e-01, 1.4882260851454079e-01, 3.1410158259776160e-04]),
            (5, [ 6.1481132455750565e-01, 1.8628922741351511e-01, 3.1645206211598960e-04]),
            (5, [ 6.5004074628423802e-01, 2.2319097017144560e-01, 3.1766523059122040e-04]),
            (5, [ 5.4251514487072128e-01, 3.7182013061189442e-02, 3.1050971610239390e-04]),
            (5, [ 5.8418605569079307e-01, 7.4836163350673460e-02, 3.1430141178905502e-04]),
            (5, [ 6.2346321868514998e-01, 1.1259908342661200e-01, 3.1681728662872000e-04]),
            (5, [ 6.6029345518488425e-01, 1.5013038131576190e-01, 3.1814018655709682e-04]),
            (5, [ 6.2785739683751052e-01, 3.7675599302457202e-02, 3.1706636591560371e-04]),
            (5, [ 6.6656117112645774e-01, 7.5484433013601582e-02, 3.1854479446255101e-04]),
        ],
        3890 => &[
            (0, [ 0.0                   , 0.0                   , 1.8073952521969199e-05]),
            (1, [ 0.0                   , 0.0                   , 2.8480087822388271e-04]),
            (2, [ 0.0                   , 0.0                   , 2.8360658375305809e-04]),
            (3, [ 1.5878764198583521e-02, 0.0                   , 7.0131492666738158e-05]),
            (3, [ 4.0691935937512060e-02, 0.0                   , 1.1627980219567660e-04]),
            (3, [ 7.0258881152579972e-02, 0.0                   , 1.5187285839721049e-04]),
            (3, [ 1.0274954500287040e-01, 0.0                   , 1.7987961082169341e-04]),
            (3, [ 1.3714577308934259e-01, 0.0                   , 2.0225933859727849e-04]),
            (3, [ 1.7277585326719530e-01, 0.0                   , 2.2030931055754639e-04]),
            (3, [ 2.0914920389290370e-01, 0.0                   , 2.3492942342998551e-04]),
            (3, [ 2.4588132817519151e-01, 0.0                   , 2.4676820587470028e-04]),
            (3, [ 2.8265458594500659e-01, 0.0                   , 2.5630926835722238e-04]),
            (3, [ 3.1919572917996220e-01, 0.0                   , 2.6392538967633182e-04]),
            (3, [ 3.5526214692995778e-01, 0.0                   , 2.6991374792651081e-04]),
            (3, [ 3.9063295034062301e-01, 0.0                   , 2.7451964201667391e-04]),
            (3, [ 4.2510286140930309e-01, 0.0                   , 2.7795291973975933e-04]),
            (3, [ 4.5847775201118701e-01, 0.0                   , 2.8039960866842650e-04]),
            (3, [ 4.9057113587101930e-01, 0.0                   , 2.8203023567158420e-04]),
            (3, [ 5.2120116698473851e-01, 0.0                   , 2.8300567474910681e-04]),
            (3, [ 5.5018784887379946e-01, 0.0                   , 2.8348089507768392e-04]),
            (3, [ 6.0250378774793423e-01, 0.0                   , 2.8352823390789291e-04]),
            (3, [ 6.2545726895490161e-01, 0.0                   , 2.8338192670657999e-04]),
            (3, [ 6.4601071795282483e-01, 0.0                   , 2.8328583369067838e-04]),
            (3, [ 6.6395411381542513e-01, 0.0                   , 2.8332682354512438e-04]),
            (3, [ 6.7906885156674945e-01, 0.0                   , 2.8354326770292529e-04]),
            (3, [ 6.9113385803715122e-01, 0.0                   , 2.8390917227430490e-04]),
            (3, [ 6.9993859561264904e-01, 0.0                   , 2.8433081788758411e-04]),
            (3, [ 7.0530377486568963e-01, 0.0                   , 2.8467035505338458e-04]),
            (4, [ 4.7322243871801152e-02, 0.0                   , 1.0511934069719000e-04]),
            (4, [ 1.2021005293268031e-01, 0.0                   , 1.6578718387969739e-04]),
            (4, [ 2.0343048206648551e-01, 0.0                   , 2.0646481137142321e-04]),
            (4, [ 2.9122856435730021e-01, 0.0                   , 2.3479427458197410e-04]),
            (4, [ 3.8023617927267678e-01, 0.0                   , 2.5477753265977260e-04]),
            (4, [ 4.6805985110561460e-01, 0.0                   , 2.6868766848470253e-04]),
            (4, [ 5.5281510521555988e-01, 0.0                   , 2.7786657555158668e-04]),
            (4, [ 6.3293863078030410e-01, 0.0                   , 2.8309966167829292e-04]),
            (5, [ 8.0565166513690695e-02, 2.3634546840031238e-02, 1.4030633401683720e-04]),
            (5, [ 1.1564760771393889e-01, 5.1912916325459357e-02, 1.6965041259394770e-04]),
            (5, [ 1.5204733827604211e-01, 8.3227157369945196e-02, 1.9357872427453899e-04]),
            (5, [ 1.8929866997459310e-01, 1.1658556679937120e-01, 2.1306145105219680e-04]),
            (5, [ 2.2701944467777921e-01, 1.5130771674095039e-01, 2.2893812659310480e-04]),
            (5, [ 2.6489081850932727e-01, 1.8688820258078589e-01, 2.4186302928161859e-04]),
            (5, [ 3.0263892595741360e-01, 2.2292776297762240e-01, 2.5234004956311927e-04]),
            (5, [ 3.4002202961513839e-01, 2.5909518407462351e-01, 2.6076239734496048e-04]),
            (5, [ 3.7682179533355098e-01, 2.9510472917508468e-01, 2.6744410326892090e-04]),
            (5, [ 4.1283729009218839e-01, 3.3070197141699298e-01, 2.7264323603433562e-04]),
            (5, [ 4.4788071318156297e-01, 3.6565441010876337e-01, 2.7657876859245453e-04]),
            (5, [ 4.8177420340892568e-01, 3.9974489519396950e-01, 2.7944286906422241e-04]),
            (5, [ 5.1434728146533437e-01, 4.3276671108120240e-01, 2.8140990020628949e-04]),
            (5, [ 5.4543462139056498e-01, 4.6451961235322931e-01, 2.8264295315789939e-04]),
            (5, [ 5.7487393131702524e-01, 4.9480635557033448e-01, 2.8329835425508840e-04]),
            (5, [ 1.5995987382863419e-01, 2.7923575900489848e-02, 1.8866955652849761e-04]),
            (5, [ 1.9980974125009510e-01, 5.8771410381390651e-02, 2.0818678827482339e-04]),
            (5, [ 2.3962289525662020e-01, 9.1645739146913777e-02, 2.2451486806007961e-04]),
            (5, [ 2.7922283410977461e-01, 1.2590496419626870e-01, 2.3803704915118719e-04]),
            (5, [ 3.1842511075467411e-01, 1.6105948234008630e-01, 2.4913980418524552e-04]),
            (5, [ 3.5704811644262441e-01, 1.9671516534608979e-01, 2.5816324058812299e-04]),
            (5, [ 3.9491647104921440e-01, 2.3254046061751679e-01, 2.6539655062274167e-04]),
            (5, [ 4.3186172939705031e-01, 2.6824611411514387e-01, 2.7108572167470872e-04]),
            (5, [ 4.6772210099316780e-01, 3.0357201160119729e-01, 2.7544340939036590e-04]),
            (5, [ 5.0234179392709555e-01, 3.3827818591974390e-01, 2.7865799325193803e-04]),
            (5, [ 5.3557018366361275e-01, 3.7213830656259422e-01, 2.8090110806794740e-04]),
            (5, [ 5.6726084513287711e-01, 4.0493463604660551e-01, 2.8233361845609868e-04]),
            (5, [ 5.9727042025401622e-01, 4.3645380986338023e-01, 2.8311011758063088e-04]),
            (5, [ 2.4616870223335960e-01, 3.0704231668333679e-02, 2.2216799703545461e-04]),
            (5, [ 2.8817745662868310e-01, 6.3380346692818848e-02, 2.3561857342707031e-04]),
            (5, [ 3.2939636041169779e-01, 9.7428624870679409e-02, 2.4692283448055899e-04]),
            (5, [ 3.6973038222413768e-01, 1.3237995322822901e-01, 2.5627263486420460e-04]),
            (5, [ 4.0906630231351271e-01, 1.6784970181293360e-01, 2.6387567267530278e-04]),
            (5, [ 4.4728193554117118e-01, 2.0350951053261140e-01, 2.6993111573908618e-04]),
            (5, [ 4.8425133772314372e-01, 2.3906925666720910e-01, 2.7462332684038369e-04]),
            (5, [ 5.1984776299629276e-01, 2.7426498180761488e-01, 2.7812256744547711e-04]),
            (5, [ 5.5394530118831453e-01, 3.0885038065800940e-01, 2.8058812540456842e-04]),
            (5, [ 5.8641967624012514e-01, 3.4259042459066141e-01, 2.8217198770049128e-04]),
            (5, [ 6.1714844666683899e-01, 3.7525622947894682e-01, 2.8302225023331238e-04]),
            (5, [ 3.3503378305657272e-01, 3.2615899346347468e-02, 2.4579959567448700e-04]),
            (5, [ 3.7757732247582843e-01, 6.6584389280815726e-02, 2.5514744075037061e-04]),
            (5, [ 4.1881552298489733e-01, 1.0145657971579540e-01, 2.6290653351953111e-04]),
            (5, [ 4.5868058920093441e-01, 1.3685733208438219e-01, 2.6919004499250748e-04]),
            (5, [ 4.9708957142242349e-01, 1.7246148519516080e-01, 2.7412754857542758e-04]),
            (5, [ 5.3395051339607469e-01, 2.0797793814164120e-01, 2.7785309701225950e-04]),
            (5, [ 5.6916657925314396e-01, 2.4313857883222881e-01, 2.8050105676467407e-04]),
            (5, [ 6.0263876826803775e-01, 2.7769018830498532e-01, 2.8220558340310398e-04]),
            (5, [ 6.3426761501633067e-01, 3.1138813563866319e-01, 2.8310169012434728e-04]),
            (5, [ 4.2379511195370673e-01, 3.3948778486643509e-02, 2.6244749011318031e-04]),
            (5, [ 4.6569186832349291e-01, 6.8802195562914475e-02, 2.6880341630393769e-04]),
            (5, [ 5.0588570691859802e-01, 1.0419468597216350e-01, 2.7389327512876362e-04]),
            (5, [ 5.4432046667139955e-01, 1.3980397387363930e-01, 2.7779447912425231e-04]),
            (5, [ 5.8092988137597423e-01, 1.7533733811961549e-01, 2.8060116616609868e-04]),
            (5, [ 6.1564160394471279e-01, 2.1052157935140101e-01, 2.8241814565974598e-04]),
            (5, [ 6.4838013510666037e-01, 2.4509533121570509e-01, 2.8335852165778277e-04]),
            (5, [ 5.1036165772516884e-01, 3.4855606438007190e-02, 2.7381652369628780e-04]),
            (5, [ 5.5067387925806810e-01, 7.0263086315120335e-02, 2.7783652082031803e-04]),
            (5, [ 5.8895730409952918e-01, 1.0590350612964031e-01, 2.8078529404189660e-04]),
            (5, [ 6.2516415895169297e-01, 1.4148239252360259e-01, 2.8272459496747051e-04]),
            (5, [ 6.5924149215701777e-01, 1.7672079082145301e-01, 2.8373423448298279e-04]),
            (5, [ 5.9303140175333835e-01, 3.5421893395616723e-02, 2.8092339076109810e-04]),
            (5, [ 6.3098122533901746e-01, 7.1095740403695484e-02, 2.8299308097426938e-04]),
            (5, [ 6.6662960113532299e-01, 1.0672597922827300e-01, 2.8410978741114789e-04]),
            (5, [ 6.7037152710499215e-01, 3.5694552688208092e-02, 2.8434552060087830e-04]),
        ],
        4334 => &[
            (0, [ 0.0                   , 0.0                   , 1.4490630225378830e-05]),
            (2, [ 0.0                   , 0.0                   , 2.5463773298284239e-04]),
            (3, [ 1.4628961518310130e-02, 0.0                   , 6.0184329610874963e-05]),
            (3, [ 3.7698408124931387e-02, 0.0                   , 1.0022865832636730e-04]),
            (3, [ 6.5247019040968912e-02, 0.0                   , 1.3152229310280930e-04]),
            (3, [ 9.5605434161346481e-02, 0.0                   , 1.5642137468767239e-04]),
            (3, [ 1.2783358989291979e-01, 0.0                   , 1.7651188415077361e-04]),
            (3, [ 1.6130961044660311e-01, 0.0                   , 1.9287370993110800e-04]),
            (3, [ 1.9558062257453709e-01, 0.0                   , 2.0626585342632699e-04]),
            (3, [ 2.3029352184980281e-01, 0.0                   , 2.1723954459537871e-04]),
            (3, [ 2.6515843441130271e-01, 0.0                   , 2.2620761888760471e-04]),
            (3, [ 2.9992768251832091e-01, 0.0                   , 2.3348856994623971e-04]),
            (3, [ 3.3438286697187980e-01, 0.0                   , 2.3933552731792031e-04]),
            (3, [ 3.6832650137505180e-01, 0.0                   , 2.4395592004688630e-04]),
            (3, [ 4.0157632065181081e-01, 0.0                   , 2.4752518660600020e-04]),
            (3, [ 4.3396120263997701e-01, 0.0                   , 2.5019655581587732e-04]),
            (3, [ 4.6531806511145818e-01, 0.0                   , 2.5210814079259250e-04]),
            (3, [ 4.9548933310808030e-01, 0.0                   , 2.5338810023880809e-04]),
            (3, [ 5.2432070689249299e-01, 0.0                   , 2.5415829008482610e-04]),
            (3, [ 5.5165904790417042e-01, 0.0                   , 2.5453657375258600e-04]),
            (3, [ 6.0123719278041765e-01, 0.0                   , 2.5457269930667989e-04]),
            (3, [ 6.2315744664498185e-01, 0.0                   , 2.5444561974655551e-04]),
            (3, [ 6.4294165141812709e-01, 0.0                   , 2.5434815968810638e-04]),
            (3, [ 6.6041242729435945e-01, 0.0                   , 2.5435064514291942e-04]),
            (3, [ 6.7538514704082497e-01, 0.0                   , 2.5449056754937632e-04]),
            (3, [ 6.8767179706261605e-01, 0.0                   , 2.5476114073444292e-04]),
            (3, [ 6.9708950613192344e-01, 0.0                   , 2.5510603754488691e-04]),
            (3, [ 7.0347469125533102e-01, 0.0                   , 2.5542919338160391e-04]),
            (3, [ 7.0670172175422952e-01, 0.0                   , 2.5562557106863432e-04]),
            (4, [ 4.3822235011311231e-02, 0.0                   , 9.0413396951181957e-05]),
            (4, [ 1.1174740774000060e-01, 0.0                   , 1.4384263300790221e-04]),
            (4, [ 1.8971532529114399e-01, 0.0                   , 1.8025230898205180e-04]),
            (4, [ 2.7240230099103308e-01, 0.0                   , 2.0600522905654960e-04]),
            (4, [ 3.5671633087099019e-01, 0.0                   , 2.2450022489674661e-04]),
            (4, [ 4.4047844830280869e-01, 0.0                   , 2.3770598477311500e-04]),
            (4, [ 5.2198331541614107e-01, 0.0                   , 2.4681189558825248e-04]),
            (4, [ 5.9981798689775534e-01, 0.0                   , 2.5254108729665282e-04]),
            (4, [ 6.7278031545482220e-01, 0.0                   , 2.5531014099333969e-04]),
            (5, [ 7.4765639431660855e-02, 2.1931685094611849e-02, 1.2128797336686320e-04]),
            (5, [ 1.0753414820014159e-01, 4.8264192815338870e-02, 1.4728728812709311e-04]),
            (5, [ 1.4163448852032590e-01, 7.7511918835757421e-02, 1.6868466010108279e-04]),
            (5, [ 1.7663253153885861e-01, 1.0875581392476801e-01, 1.8626984146602081e-04]),
            (5, [ 2.1217441744815141e-01, 1.4136613742530960e-01, 2.0074309569918610e-04]),
            (5, [ 2.4796694434081451e-01, 1.7487682142588801e-01, 2.1265681253947961e-04]),
            (5, [ 2.8376004522941128e-01, 2.0892164066120730e-01, 2.2243946033721130e-04]),
            (5, [ 3.1933449331939839e-01, 2.4319876855459721e-01, 2.3042645226731349e-04]),
            (5, [ 3.5449354424387453e-01, 2.7744970543777697e-01, 2.3688542884240871e-04]),
            (5, [ 3.8905719322881538e-01, 3.1144603561569151e-01, 2.4203520894617721e-04]),
            (5, [ 4.2285812142590901e-01, 3.4498068519130121e-01, 2.4605971130812950e-04]),
            (5, [ 4.5573872113040520e-01, 3.7786186412482559e-01, 2.4911819122576872e-04]),
            (5, [ 4.8754879505416432e-01, 4.0990863916989778e-01, 2.5135281942058568e-04]),
            (5, [ 5.1814365299629972e-01, 4.4094749258539728e-01, 2.5289430966932201e-04]),
            (5, [ 5.4738240956006612e-01, 4.7080945177112909e-01, 2.5386603684881360e-04]),
            (5, [ 5.7512633989761741e-01, 4.9932751403546372e-01, 2.5438686482990219e-04]),
            (5, [ 1.4895157468400280e-01, 2.5993819932670172e-02, 1.6425955378251831e-04]),
            (5, [ 1.8636564443517670e-01, 5.4792865324621902e-02, 1.8182466598493080e-04]),
            (5, [ 2.2386028803563479e-01, 8.5567632514252534e-02, 1.9665656494924201e-04]),
            (5, [ 2.6127233757281598e-01, 1.1772578022670110e-01, 2.0906779056579911e-04]),
            (5, [ 2.9843329902061899e-01, 1.5081684561927000e-01, 2.1938204095105039e-04]),
            (5, [ 3.3517865846633332e-01, 1.8448018921777271e-01, 2.2788708276619279e-04]),
            (5, [ 3.7135055222091201e-01, 2.1841452360875979e-01, 2.3482831922820899e-04]),
            (5, [ 4.0679810989546628e-01, 2.5235906414862291e-01, 2.4041397555814770e-04]),
            (5, [ 4.4137699936875341e-01, 2.8608129769013729e-01, 2.4482274077607341e-04]),
            (5, [ 4.7494871825163942e-01, 3.1936867578089961e-01, 2.4821104555925729e-04]),
            (5, [ 5.0737981050754255e-01, 3.5202269495476018e-01, 2.5071923977741033e-04]),
            (5, [ 5.3854104488786536e-01, 3.8385443956678900e-01, 2.5247659685348798e-04]),
            (5, [ 5.6830653536705300e-01, 4.1468100376409628e-01, 2.5360523885394249e-04]),
            (5, [ 5.9655276206635099e-01, 4.4432240946811208e-01, 2.5422305880330682e-04]),
            (5, [ 2.2992277008561571e-01, 2.8657576640575839e-02, 1.9448170130478959e-04]),
            (5, [ 2.6957529985532669e-01, 5.9234216844859931e-02, 2.0678623627466350e-04]),
            (5, [ 3.0861787166113891e-01, 9.1178177760577156e-02, 2.1724407346491141e-04]),
            (5, [ 3.4696498716590768e-01, 1.2405938140826051e-01, 2.2601259917234229e-04]),
            (5, [ 3.8451535663196551e-01, 1.5752720582591750e-01, 2.3326550086895229e-04]),
            (5, [ 4.2116000334032150e-01, 1.9128451635254129e-01, 2.3916996815324579e-04]),
            (5, [ 4.5678678343298817e-01, 2.2507101778581709e-01, 2.4388015282739281e-04]),
            (5, [ 4.9128293192320610e-01, 2.5865213034409101e-01, 2.4753705042606652e-04]),
            (5, [ 5.2453647933038117e-01, 2.9181122428654072e-01, 2.5027072356405739e-04]),
            (5, [ 5.5643697889157562e-01, 3.2434392390678901e-01, 2.5220317010542410e-04]),
            (5, [ 5.8687576977752876e-01, 3.5605367878353511e-01, 2.5345112699787838e-04]),
            (5, [ 6.1574588535196173e-01, 3.8674808212425810e-01, 2.5412849149551508e-04]),
            (5, [ 3.1384611106721128e-01, 3.0513746375072780e-02, 2.1615092506883940e-04]),
            (5, [ 3.5424958720505689e-01, 6.2371112337307549e-02, 2.2487785134378519e-04]),
            (5, [ 3.9357515531201809e-01, 9.5162239524019074e-02, 2.3223888034046170e-04]),
            (5, [ 4.3176346681111472e-01, 1.2854673415085169e-01, 2.3832654710013551e-04]),
            (5, [ 4.6874138422508210e-01, 1.6223189316560330e-01, 2.4324766750195251e-04]),
            (5, [ 5.0442742370602833e-01, 1.9595811538364530e-01, 2.4711222237506738e-04]),
            (5, [ 5.3873540779257267e-01, 2.2948880811838371e-01, 2.5002917524868701e-04]),
            (5, [ 5.7157688983561050e-01, 2.6260311527139452e-01, 2.5210559427646818e-04]),
            (5, [ 6.0286272001361108e-01, 2.9509040752867127e-01, 2.5344727855755030e-04]),
            (5, [ 6.3250398126534635e-01, 3.2674584511132859e-01, 2.5415997130801211e-04]),
            (5, [ 3.9819867084234067e-01, 3.1832914587498207e-02, 2.3173809758629359e-04]),
            (5, [ 4.3827911821332999e-01, 6.4595481938809082e-02, 2.3785507337197750e-04]),
            (5, [ 4.7692330572181663e-01, 9.7957570370879515e-02, 2.4288844567391181e-04]),
            (5, [ 5.1408239111942378e-01, 1.3163072351266550e-01, 2.4690026557572920e-04]),
            (5, [ 5.4969778338629827e-01, 1.6535564863587041e-01, 2.4996575742658510e-04]),
            (5, [ 5.8370473065127271e-01, 1.9889317241265100e-01, 2.5216761684860819e-04]),
            (5, [ 6.1603495669268793e-01, 2.3201745814389499e-01, 2.5359356626453340e-04]),
            (5, [ 6.4661853532094404e-01, 2.6451065621686620e-01, 2.5433567433632138e-04]),
            (5, [ 4.8108351587954040e-01, 3.2759178077439922e-02, 2.4273532852015349e-04]),
            (5, [ 5.1999250413243414e-01, 6.6125461839671815e-02, 2.4682580397443861e-04]),
            (5, [ 5.5717176922074940e-01, 9.9814983314741423e-02, 2.5000609564403099e-04]),
            (5, [ 5.9257892508363785e-01, 1.3356870014103739e-01, 2.5232383654209790e-04]),
            (5, [ 6.2616585238596700e-01, 1.6714444028964631e-01, 2.5383992602528462e-04]),
            (5, [ 6.5788111266693305e-01, 2.0031063821560760e-01, 2.5462559272680690e-04]),
            (5, [ 5.6096246129980998e-01, 3.3375009402313353e-02, 2.5005833600484488e-04]),
            (5, [ 5.9799596599846705e-01, 6.7087503359018030e-02, 2.5247776382602031e-04]),
            (5, [ 6.3305237110540025e-01, 1.0087921264248501e-01, 2.5409511938606562e-04]),
            (5, [ 6.6609609981039719e-01, 1.3450503431717939e-01, 2.5495240850274722e-04]),
            (5, [ 6.3653843645858188e-01, 3.3727994607370519e-02, 2.5425695070091579e-04]),
            (5, [ 6.7109943028992747e-01, 6.7552493096780283e-02, 2.5521141275803758e-04]),
        ],
        4802 => &[
            (0, [ 0.0                   , 0.0                   , 9.6875218794207046e-05]),
            (1, [ 0.0                   , 0.0                   , 2.3078978953679181e-04]),
            (2, [ 0.0                   , 0.0                   , 2.2973108524985581e-04]),
            (3, [ 2.3357286088870641e-02, 0.0                   , 7.3862659440019184e-05]),
            (3, [ 4.3529878365506529e-02, 0.0                   , 8.2579776985422098e-05]),
            (3, [ 6.4392005210888004e-02, 0.0                   , 9.7060447620576302e-05]),
            (3, [ 9.0039436319931804e-02, 0.0                   , 1.3023938471170031e-04]),
            (3, [ 1.1967066155484730e-01, 0.0                   , 1.5419570046009681e-04]),
            (3, [ 1.5117154128381341e-01, 0.0                   , 1.7044597700921989e-04]),
            (3, [ 1.8359828285038010e-01, 0.0                   , 1.8273748909429060e-04]),
            (3, [ 2.1650812591554050e-01, 0.0                   , 1.9263608174361070e-04]),
            (3, [ 2.4962087204175629e-01, 0.0                   , 2.0080102394948331e-04]),
            (3, [ 2.8272006735679001e-01, 0.0                   , 2.0756359832091749e-04]),
            (3, [ 3.1561908239943459e-01, 0.0                   , 2.1313066386909090e-04]),
            (3, [ 3.4814767937491148e-01, 0.0                   , 2.1765623299373351e-04]),
            (3, [ 3.8014660869472261e-01, 0.0                   , 2.2126822629910180e-04]),
            (3, [ 4.1146521196340108e-01, 0.0                   , 2.2407995156685650e-04]),
            (3, [ 4.4195987865197511e-01, 0.0                   , 2.2619598161875251e-04]),
            (3, [ 4.7149259493295431e-01, 0.0                   , 2.2771563688088551e-04]),
            (3, [ 4.9992939728794661e-01, 0.0                   , 2.2873517721283361e-04]),
            (3, [ 5.2713872214312485e-01, 0.0                   , 2.2934908140840850e-04]),
            (3, [ 5.5298967808377608e-01, 0.0                   , 2.2965053123762729e-04]),
            (3, [ 6.0008560994817117e-01, 0.0                   , 2.2967938323187559e-04]),
            (3, [ 6.2105621927851751e-01, 0.0                   , 2.2957854438429741e-04]),
            (3, [ 6.4011658799342397e-01, 0.0                   , 2.2950179315291020e-04]),
            (3, [ 6.5711440292443335e-01, 0.0                   , 2.2950596381848679e-04]),
            (3, [ 6.7189108217188631e-01, 0.0                   , 2.2962323432373620e-04]),
            (3, [ 6.8428455910990105e-01, 0.0                   , 2.2985301787407711e-04]),
            (3, [ 6.9413534762698159e-01, 0.0                   , 2.3015797902805010e-04]),
            (3, [ 7.0129652422129907e-01, 0.0                   , 2.3046904049965131e-04]),
            (3, [ 7.0564714282426444e-01, 0.0                   , 2.3070279959071021e-04]),
            (4, [ 4.5955576435858951e-02, 0.0                   , 9.3122746966710918e-05]),
            (4, [ 1.0493167424350230e-01, 0.0                   , 1.1999193858769260e-04]),
            (4, [ 1.7735488795492740e-01, 0.0                   , 1.5980391388776901e-04]),
            (4, [ 2.5590714112361268e-01, 0.0                   , 1.8222537635749001e-04]),
            (4, [ 3.3581568379858978e-01, 0.0                   , 1.9885795936550399e-04]),
            (4, [ 4.1558357437638932e-01, 0.0                   , 2.1126201025333069e-04]),
            (4, [ 4.9378942961674721e-01, 0.0                   , 2.2015948876990071e-04]),
            (4, [ 5.6915696947933159e-01, 0.0                   , 2.2616225908950359e-04]),
            (4, [ 6.4058408548942514e-01, 0.0                   , 2.2964584534357051e-04]),
            (5, [ 7.3451338941433478e-02, 2.1778440814860672e-02, 1.0060069902670000e-04]),
            (5, [ 1.0098598340449309e-01, 4.5903621857751882e-02, 1.2276766896358759e-04]),
            (5, [ 1.3242896197487580e-01, 7.2550630956908765e-02, 1.4678642802701169e-04]),
            (5, [ 1.6542721096071270e-01, 1.0178254519606840e-01, 1.6441789121012320e-04]),
            (5, [ 1.9907671867764609e-01, 1.3256523209803639e-01, 1.7776648907189609e-04]),
            (5, [ 2.3301259455232781e-01, 1.6427653744967649e-01, 1.8848256645166901e-04]),
            (5, [ 2.6700806111082870e-01, 1.9653603743378889e-01, 1.9732692464538481e-04]),
            (5, [ 3.0087533762943158e-01, 2.2907267705422379e-01, 2.0467677758553279e-04]),
            (5, [ 3.3444755961678602e-01, 2.6166454953708229e-01, 2.1076001259180400e-04]),
            (5, [ 3.6757097240707859e-01, 2.9411507288431410e-01, 2.1574163622668289e-04]),
            (5, [ 4.0010008875878122e-01, 3.2624404009190661e-01, 2.1975578169207210e-04]),
            (5, [ 4.3189563504360279e-01, 3.5788353506119158e-01, 2.2291926118354370e-04]),
            (5, [ 4.6282390567955312e-01, 3.8887518540436777e-01, 2.2533851102127749e-04]),
            (5, [ 4.9275632297736360e-01, 4.1906780032228402e-01, 2.2711371075487740e-04]),
            (5, [ 5.2156871367079694e-01, 4.4831518368838519e-01, 2.2834140929175250e-04]),
            (5, [ 5.4914023469849049e-01, 4.7647406760878802e-01, 2.2911616731300771e-04]),
            (5, [ 5.7535201601260755e-01, 5.0340213109982768e-01, 2.2953139085765979e-04]),
            (5, [ 1.3883263564177539e-01, 2.4354365103728060e-02, 1.4382047213590309e-04]),
            (5, [ 1.7436869005372441e-01, 5.1188970573426522e-02, 1.6077380254952571e-04]),
            (5, [ 2.0997370379502681e-01, 8.0146950485396343e-02, 1.7414838535283791e-04]),
            (5, [ 2.4544925909085480e-01, 1.1051178741556990e-01, 1.8519184675191511e-04]),
            (5, [ 2.8072192578642780e-01, 1.4179505315709659e-01, 1.9446286380706129e-04]),
            (5, [ 3.1568422719758421e-01, 1.7366049457195970e-01, 2.0224954462751520e-04]),
            (5, [ 3.5020909451777521e-01, 2.0584663246939811e-01, 2.0874623824385140e-04]),
            (5, [ 3.8416848495196859e-01, 2.3812842611959190e-01, 2.1410747548183080e-04]),
            (5, [ 4.1743723679060157e-01, 2.7030312704225690e-01, 2.1846409137481619e-04]),
            (5, [ 4.4989264650118921e-01, 3.0218456830913087e-01, 2.2193091652203289e-04]),
            (5, [ 4.8141462298077009e-01, 3.3359933551657200e-01, 2.2461231183406241e-04]),
            (5, [ 5.1188636257347009e-01, 3.6438337355182321e-01, 2.2660627669151249e-04]),
            (5, [ 5.4119474551191438e-01, 3.9437895419581792e-01, 2.2800729522307961e-04]),
            (5, [ 5.6923015003572464e-01, 4.2343201444035422e-01, 2.2890820252025829e-04]),
            (5, [ 5.9588572041395760e-01, 4.5138979474192598e-01, 2.2940126951200251e-04]),
            (5, [ 2.1562702847857659e-01, 2.6812257554444909e-02, 1.7224344887369471e-04]),
            (5, [ 2.5323850549097099e-01, 5.5574957478056138e-02, 1.8302374214550910e-04]),
            (5, [ 2.9025646177715370e-01, 8.5693680629502486e-02, 1.9238553499976329e-04]),
            (5, [ 3.2669798231432562e-01, 1.1673674503241351e-01, 2.0040678619362711e-04]),
            (5, [ 3.6250396274936142e-01, 1.4838619940033040e-01, 2.0718172973542630e-04]),
            (5, [ 3.9758389375486991e-01, 1.8038215030114049e-01, 2.1282508341021031e-04]),
            (5, [ 4.3183960990097742e-01, 2.1249629656664240e-01, 2.1745137194401019e-04]),
            (5, [ 4.6517065557327419e-01, 2.4452218378059129e-01, 2.2116618391502141e-04]),
            (5, [ 4.9747526496209687e-01, 2.7627012243229870e-01, 2.2406652578131021e-04]),
            (5, [ 5.2865175796275166e-01, 3.0756277752113281e-01, 2.2624395166326200e-04]),
            (5, [ 5.5860011957318945e-01, 3.3823110898268771e-01, 2.2778745572318691e-04]),
            (5, [ 5.8722299020213187e-01, 3.6811088347413989e-01, 2.2878543144549940e-04]),
            (5, [ 6.1442586162351231e-01, 3.9703974468728392e-01, 2.2932684996155751e-04]),
            (5, [ 2.9516765080648610e-01, 2.8674995387504409e-02, 1.9126282015298281e-04]),
            (5, [ 3.3350854854727252e-01, 5.8678793419035098e-02, 1.9924996722387009e-04]),
            (5, [ 3.7095617606363812e-01, 8.9610992050222840e-02, 2.0612755334540269e-04]),
            (5, [ 4.0747228616674980e-01, 1.2116279276262970e-01, 2.1193182159685720e-04]),
            (5, [ 4.4299236488391169e-01, 1.5307489035548980e-01, 2.1674165818826521e-04]),
            (5, [ 4.7744280527217359e-01, 1.8511764367218769e-01, 2.2064307305166001e-04]),
            (5, [ 5.1074465395359037e-01, 2.1708291076581790e-01, 2.2371869386995230e-04]),
            (5, [ 5.4281513705429352e-01, 2.4877866890262709e-01, 2.2604800750328840e-04]),
            (5, [ 5.7356992925569639e-01, 2.8002399527950161e-01, 2.2770988845585420e-04]),
            (5, [ 6.0292537945628655e-01, 3.1064457028781189e-01, 2.2878457151096710e-04]),
            (5, [ 6.3079989870731445e-01, 3.4046895008411943e-01, 2.2935472682362941e-04]),
            (5, [ 3.7526522736927193e-01, 2.9971450981844790e-02, 2.0560738398525281e-04]),
            (5, [ 4.1353838793440278e-01, 6.0867258986780109e-02, 2.1142358658318759e-04]),
            (5, [ 4.5061138851539068e-01, 9.2388495484356431e-02, 2.1631756297705511e-04]),
            (5, [ 4.8644015546060720e-01, 1.2427866038518511e-01, 2.2033921581116501e-04]),
            (5, [ 5.2097080766117088e-01, 1.5630867314833860e-01, 2.2354731768478391e-04]),
            (5, [ 5.5414221358301219e-01, 1.8826965093885059e-01, 2.2600241415012351e-04]),
            (5, [ 5.8588809151138166e-01, 2.1996729791260591e-01, 2.2776759293291821e-04]),
            (5, [ 6.1613993906034437e-01, 2.5121654829248669e-01, 2.2891021122848341e-04]),
            (5, [ 6.4482964822550903e-01, 2.8183687018718878e-01, 2.2950279546251180e-04]),
            (5, [ 4.5447962749179482e-01, 3.0889704050603119e-02, 2.1612815898799920e-04]),
            (5, [ 4.9193890721466282e-01, 6.2409476776368350e-02, 2.2019804773951019e-04]),
            (5, [ 5.2793130269851829e-01, 9.4307061442803125e-02, 2.2349520665931660e-04]),
            (5, [ 5.6241699255711353e-01, 1.2635478187703739e-01, 2.2605400985208380e-04]),
            (5, [ 5.9534846270932873e-01, 1.5834307888225940e-01, 2.2791579818999880e-04]),
            (5, [ 6.2667307153391849e-01, 1.9007484625559881e-01, 2.2912969185655711e-04]),
            (5, [ 6.5633632042788714e-01, 2.2135995195925670e-01, 2.2975337525366489e-04]),
            (5, [ 5.3145747165856960e-01, 3.1525088115153740e-02, 2.2349273564659951e-04]),
            (5, [ 5.6746149322981854e-01, 6.3438652914655613e-02, 2.2612880129852189e-04]),
            (5, [ 6.0177060049702635e-01, 9.5515035042239516e-02, 2.2808181609236880e-04]),
            (5, [ 6.3434712702641782e-01, 1.2754400998011961e-01, 2.2937732951801591e-04]),
            (5, [ 6.6514945991278018e-01, 1.5932520376719600e-01, 2.3005287673386339e-04]),
            (5, [ 6.0501849860057044e-01, 3.1925383384961051e-02, 2.2818938550656659e-04]),
            (5, [ 6.3901635508804000e-01, 6.4028243539623053e-02, 2.2957204448407269e-04]),
            (5, [ 6.7111991070884480e-01, 9.6098050770029086e-02, 2.3032276490267531e-04]),
            (5, [ 6.7413544295722749e-01, 3.2118531962732330e-02, 2.3048319132271141e-04]),
        ],
        5294 => &[
            (0, [ 0.0                   , 0.0                   , 9.0805107643081632e-05]),
            (2, [ 0.0                   , 0.0                   , 2.0848243619877931e-04]),
            (3, [ 2.3032616862614499e-02, 0.0                   , 5.0111056572396163e-05]),
            (3, [ 3.7572086201623937e-02, 0.0                   , 5.9425204096838538e-05]),
            (3, [ 5.8219120338218522e-02, 0.0                   , 9.5643948261097214e-05]),
            (3, [ 8.4031275291948718e-02, 0.0                   , 1.1855306571263380e-04]),
            (3, [ 1.1229277980605780e-01, 0.0                   , 1.3645101142303309e-04]),
            (3, [ 1.4201253191929869e-01, 0.0                   , 1.5058288256054151e-04]),
            (3, [ 1.7263964373419780e-01, 0.0                   , 1.6192987498670229e-04]),
            (3, [ 2.0381700581156961e-01, 0.0                   , 1.7124505042677890e-04]),
            (3, [ 2.3528498928765079e-01, 0.0                   , 1.7898910981649989e-04]),
            (3, [ 2.6683633543124607e-01, 0.0                   , 1.8544749556297950e-04]),
            (3, [ 2.9829412799004518e-01, 0.0                   , 1.9081486366736609e-04]),
            (3, [ 3.2950029220870758e-01, 0.0                   , 1.9523774052818330e-04]),
            (3, [ 3.6030949183635930e-01, 0.0                   , 1.9883492542822320e-04]),
            (3, [ 3.9058578951739198e-01, 0.0                   , 2.0170798071600501e-04]),
            (3, [ 4.2020057581608372e-01, 0.0                   , 2.0394730827090940e-04]),
            (3, [ 4.4903100615972269e-01, 0.0                   , 2.0563602792889529e-04]),
            (3, [ 4.7695861603114909e-01, 0.0                   , 2.0685258230668650e-04]),
            (3, [ 5.0386798870497496e-01, 0.0                   , 2.0767248775344880e-04]),
            (3, [ 5.2964542865199615e-01, 0.0                   , 2.0816942782378851e-04]),
            (3, [ 5.5417762071648502e-01, 0.0                   , 2.0841576312193261e-04]),
            (3, [ 5.9904673219212135e-01, 0.0                   , 2.0843815311285930e-04]),
            (3, [ 6.1914670962945872e-01, 0.0                   , 2.0834762771293071e-04]),
            (3, [ 6.3752512129018490e-01, 0.0                   , 2.0826861944597320e-04]),
            (3, [ 6.5405143811311683e-01, 0.0                   , 2.0824756861124151e-04]),
            (3, [ 6.6858990643915095e-01, 0.0                   , 2.0831398602899151e-04]),
            (3, [ 6.8100130096816480e-01, 0.0                   , 2.0847455618312370e-04]),
            (3, [ 6.9114695787303404e-01, 0.0                   , 2.0870913133758901e-04]),
            (3, [ 6.9889569151417363e-01, 0.0                   , 2.0897184132976970e-04]),
            (3, [ 7.0413357948687205e-01, 0.0                   , 2.0920033034797929e-04]),
            (3, [ 7.0677543980185675e-01, 0.0                   , 2.0933361482632410e-04]),
            (4, [ 3.8403687078536232e-02, 0.0                   , 7.5917081173652664e-05]),
            (4, [ 9.8354859541173983e-02, 0.0                   , 1.0833839681691860e-04]),
            (4, [ 1.6657749476129979e-01, 0.0                   , 1.4030193952925101e-04]),
            (4, [ 2.4057023353629101e-01, 0.0                   , 1.6159701792864360e-04]),
            (4, [ 3.1652707701890459e-01, 0.0                   , 1.7711441875049110e-04]),
            (4, [ 3.9273861456454429e-01, 0.0                   , 1.8877600229881680e-04]),
            (4, [ 4.6788259183746561e-01, 0.0                   , 1.9734746707682140e-04]),
            (4, [ 5.4080220242669352e-01, 0.0                   , 2.0337876612346590e-04]),
            (4, [ 6.1049674457524383e-01, 0.0                   , 2.0723436265173309e-04]),
            (4, [ 6.7609107026857385e-01, 0.0                   , 2.0911778342269180e-04]),
            (5, [ 6.6556441202173924e-02, 1.9365088745884239e-02, 9.3166844846755660e-05]),
            (5, [ 9.4462461612701817e-02, 4.2524420021158693e-02, 1.1161936886829760e-04]),
            (5, [ 1.2426519254525090e-01, 6.8065293153543746e-02, 1.2986235515594140e-04]),
            (5, [ 1.5534380648467511e-01, 9.5609574912053685e-02, 1.4502368324564261e-04]),
            (5, [ 1.8711371105426700e-01, 1.2459316574528879e-01, 1.5727199581499140e-04]),
            (5, [ 2.1926126288362571e-01, 1.5453858287789779e-01, 1.6732347858671950e-04]),
            (5, [ 2.5156828072069548e-01, 1.8510042497233681e-01, 1.7568601187251879e-04]),
            (5, [ 2.8385358662872900e-01, 2.1601826082723841e-01, 1.8267762904393669e-04]),
            (5, [ 3.1595788175285211e-01, 2.4707990122771109e-01, 1.8851163479928650e-04]),
            (5, [ 3.4773708827913918e-01, 2.7810142089864021e-01, 1.9334578601705739e-04]),
            (5, [ 3.7905769608905399e-01, 3.0891725235157308e-01, 1.9730606719020640e-04]),
            (5, [ 4.0979383178102002e-01, 3.3937500554722438e-01, 2.0049870996163109e-04]),
            (5, [ 4.3982565728596368e-01, 3.6933224709877299e-01, 2.0301709092814991e-04]),
            (5, [ 4.6903841147184799e-01, 3.9865410056098771e-01, 2.0494614601190801e-04]),
            (5, [ 4.9732160483010529e-01, 4.2721124914085618e-01, 2.0636535652001861e-04]),
            (5, [ 5.2456815261324463e-01, 4.5487817353099358e-01, 2.0735079273810270e-04]),
            (5, [ 5.5067339118038883e-01, 4.8153153550232508e-01, 2.0797645932561220e-04]),
            (5, [ 5.7553398295224745e-01, 5.0704864458018550e-01, 2.0831505349687781e-04]),
            (5, [ 1.3054723860563619e-01, 2.2849703757223661e-02, 1.2627151215906639e-04]),
            (5, [ 1.6373279082164771e-01, 4.8122543382883839e-02, 1.4143861285459720e-04]),
            (5, [ 1.9727346341496371e-01, 7.5317344575119349e-02, 1.5387404013138980e-04]),
            (5, [ 2.3086946531101299e-01, 1.0390436398820170e-01, 1.6424349423314319e-04]),
            (5, [ 2.6438992183381599e-01, 1.3345265871176260e-01, 1.7297906092374960e-04]),
            (5, [ 2.9771715996221709e-01, 1.6364148689363819e-01, 1.8035051902608279e-04]),
            (5, [ 3.3072939030323101e-01, 1.9421954061665681e-01, 1.8654753500796571e-04]),
            (5, [ 3.6330691982190733e-01, 2.2497528799437530e-01, 1.9171826696790691e-04]),
            (5, [ 3.9533469559227269e-01, 2.5572188218200320e-01, 1.9598517090343821e-04]),
            (5, [ 4.2670183941849138e-01, 2.8628979252131931e-01, 1.9945295481178820e-04]),
            (5, [ 4.5730096225717037e-01, 3.1652245366365178e-01, 2.0221389111465480e-04]),
            (5, [ 4.8702795598561088e-01, 3.4627302216364958e-01, 2.0435180242085919e-04]),
            (5, [ 5.1578195814503225e-01, 3.7540168702828353e-01, 2.0594503130181099e-04]),
            (5, [ 5.4346516664653932e-01, 4.0377337849936129e-01, 2.0706857153184719e-04]),
            (5, [ 5.6998238877646268e-01, 4.3125577841391233e-01, 2.0779553106943730e-04]),
            (5, [ 5.9524033509477414e-01, 4.5771753671221099e-01, 2.0819803878247120e-04]),
            (5, [ 2.0251525992103689e-01, 2.5202536177195568e-02, 1.5213186103779560e-04]),
            (5, [ 2.3810666532744251e-01, 5.2232545061190003e-02, 1.6227727201857550e-04]),
            (5, [ 2.7328233836516119e-01, 8.0606696885886203e-02, 1.7104981394207091e-04]),
            (5, [ 3.0801376926111179e-01, 1.0993357540812550e-01, 1.7859111494487360e-04]),
            (5, [ 3.4224056145876008e-01, 1.3991209559598569e-01, 1.8501253136877360e-04]),
            (5, [ 3.7588087738904202e-01, 1.7029778016517050e-01, 1.9042297039332981e-04]),
            (5, [ 4.0884583834389321e-01, 2.0087992566016799e-01, 1.9492599561219870e-04]),
            (5, [ 4.4104505508411518e-01, 2.3147030521808359e-01, 1.9861615453639601e-04]),
            (5, [ 4.7238794205613122e-01, 2.6189721113758918e-01, 2.0157905856413701e-04]),
            (5, [ 5.0278435618743433e-01, 2.9200131956002701e-01, 2.0389341987074179e-04]),
            (5, [ 5.3214536744524576e-01, 3.2163225551905511e-01, 2.0563340605382510e-04]),
            (5, [ 5.6038391138340304e-01, 3.5064566159341981e-01, 2.0687059594622889e-04]),
            (5, [ 5.8741507068751464e-01, 3.7890071813062670e-01, 2.0767539061060020e-04]),
            (5, [ 6.1315593816600378e-01, 4.0625801705727821e-01, 2.0811793917348029e-04]),
            (5, [ 2.7784970163945061e-01, 2.6962712768762259e-02, 1.7003452162289430e-04]),
            (5, [ 3.1437335622619123e-01, 5.5234693169604651e-02, 1.7749067799904101e-04]),
            (5, [ 3.5014858102618268e-01, 8.4451932016264636e-02, 1.8396593770026419e-04]),
            (5, [ 3.8514303223036528e-01, 1.1432631193360830e-01, 1.8949874629751689e-04]),
            (5, [ 4.1930139794704152e-01, 1.4461778983444751e-01, 1.9415488094525949e-04]),
            (5, [ 4.5255859604585669e-01, 1.7511654384380909e-01, 1.9800784272523841e-04]),
            (5, [ 4.8484477796229469e-01, 2.0563383067456600e-01, 2.0112962847444881e-04]),
            (5, [ 5.1608712082768937e-01, 2.3599654872292261e-01, 2.0358884569667761e-04]),
            (5, [ 5.4621121856969257e-01, 2.6604302231391458e-01, 2.0545163253521420e-04]),
            (5, [ 5.7514250681017565e-01, 2.9561936644980319e-01, 2.0678310330926350e-04]),
            (5, [ 6.0280738728535965e-01, 3.2457639053127790e-01, 2.0764853202848759e-04]),
            (5, [ 6.2913382752784086e-01, 3.5276700262069721e-01, 2.0811414395252551e-04]),
            (5, [ 3.5417975284393910e-01, 2.8238534794355501e-02, 1.8343830154692221e-04]),
            (5, [ 3.9082349720746568e-01, 5.7412963747131063e-02, 1.8895405917776769e-04]),
            (5, [ 4.2644084501075902e-01, 8.7246466336501988e-02, 1.9366770235973750e-04]),
            (5, [ 4.6099496665532858e-01, 1.1750344229156159e-01, 1.9761764950665040e-04]),
            (5, [ 4.9443894965360058e-01, 1.4797556526284281e-01, 2.0085360045609830e-04]),
            (5, [ 5.2671948843460858e-01, 1.7847406594843521e-01, 2.0342803517122909e-04]),
            (5, [ 5.5777878102209899e-01, 2.0882457004312441e-01, 2.0539444660277580e-04]),
            (5, [ 5.8755637635366698e-01, 2.3886281365707629e-01, 2.0680776428823601e-04]),
            (5, [ 6.1599100163912690e-01, 2.6843089287691851e-01, 2.0772509496615990e-04]),
            (5, [ 6.4302196029562675e-01, 2.9737407619602518e-01, 2.0820624407053199e-04]),
            (5, [ 4.3006470362136462e-01, 2.9163999204939769e-02, 1.9343744865466260e-04]),
            (5, [ 4.6614863089355307e-01, 5.8988030247556590e-02, 1.9741070104843000e-04]),
            (5, [ 5.0096585552872608e-01, 8.9241626985254091e-02, 2.0071292903886580e-04]),
            (5, [ 5.3448242704477045e-01, 1.1971851996373210e-01, 2.0337369474712931e-04]),
            (5, [ 5.6665759974163710e-01, 1.5023007561613819e-01, 2.0542871259024930e-04]),
            (5, [ 5.9744574714047516e-01, 1.8060041919135639e-01, 2.0691849368188940e-04]),
            (5, [ 6.2679844441168864e-01, 2.1066217647862520e-01, 2.0788836898087820e-04]),
            (5, [ 6.5466647135754175e-01, 2.4025269326719140e-01, 2.0838863661163591e-04]),
            (5, [ 5.0427110044372525e-01, 2.9825292036076569e-02, 2.0065932754708169e-04]),
            (5, [ 5.3921274567743804e-01, 6.0087280623399221e-02, 2.0337284261353971e-04]),
            (5, [ 5.7268194376686177e-01, 9.0582276745713980e-02, 2.0550087813776081e-04]),
            (5, [ 6.0464692542072784e-01, 1.2112192358034000e-01, 2.0706517835185020e-04]),
            (5, [ 6.3507161574349524e-01, 1.5152864047915801e-01, 2.0809533350943200e-04]),
            (5, [ 6.6391776791854540e-01, 1.8163146812555520e-01, 2.0862849989885211e-04]),
            (5, [ 5.7572760409722534e-01, 3.0269917525754399e-02, 2.0555493876446679e-04]),
            (5, [ 6.0902658231397555e-01, 6.0784022978707698e-02, 2.0718718502676540e-04]),
            (5, [ 6.4067353443876607e-01, 9.1354599841766360e-02, 2.0828566004319651e-04]),
            (5, [ 6.7063979277937091e-01, 1.2180241559665900e-01, 2.0887058588193579e-04]),
            (5, [ 6.4350196744266652e-01, 3.0526083576606390e-02, 2.0839958675363221e-04]),
            (5, [ 6.7472186763756814e-01, 6.1121857739830893e-02, 2.0905097128896371e-04]),
        ],
        5810 => &[
            (0, [ 0.0                   , 0.0                   , 9.7353479461754856e-06]),
            (1, [ 0.0                   , 0.0                   , 1.9075812418031671e-04]),
            (2, [ 0.0                   , 0.0                   , 1.9010595467375781e-04]),
            (3, [ 1.1823616624002770e-02, 0.0                   , 3.9264245389192123e-05]),
            (3, [ 3.0621450091389581e-02, 0.0                   , 6.6679054672943815e-05]),
            (3, [ 5.3297940368342428e-02, 0.0                   , 8.8688913150191355e-05]),
            (3, [ 7.8481655328622196e-02, 0.0                   , 1.0663060009588719e-04]),
            (3, [ 1.0540381576362010e-01, 0.0                   , 1.2145067433361280e-04]),
            (3, [ 1.3355777977662109e-01, 0.0                   , 1.3380546816408711e-04]),
            (3, [ 1.6257699555022520e-01, 0.0                   , 1.4416770236285039e-04]),
            (3, [ 1.9217871934127920e-01, 0.0                   , 1.5288802008265570e-04]),
            (3, [ 2.2213405346905479e-01, 0.0                   , 1.6023306237736089e-04]),
            (3, [ 2.5225049127911320e-01, 0.0                   , 1.6641026534452440e-04]),
            (3, [ 2.8236108606796972e-01, 0.0                   , 1.7158458540113229e-04]),
            (3, [ 3.1231739662675601e-01, 0.0                   , 1.7589010001330691e-04]),
            (3, [ 3.4198470369537892e-01, 0.0                   , 1.7943824852567359e-04]),
            (3, [ 3.7123864569997578e-01, 0.0                   , 1.8232381067574070e-04]),
            (3, [ 3.9996276498768280e-01, 0.0                   , 1.8462932529599759e-04]),
            (3, [ 4.2804664586480928e-01, 0.0                   , 1.8642840793230980e-04]),
            (3, [ 4.5538443601857109e-01, 0.0                   , 1.8778826946269140e-04]),
            (3, [ 4.8187360944378338e-01, 0.0                   , 1.8877163218520250e-04]),
            (3, [ 5.0741387092606294e-01, 0.0                   , 1.8943816381756731e-04]),
            (3, [ 5.3190613045707069e-01, 0.0                   , 1.8984548995336291e-04]),
            (3, [ 5.5525149786772865e-01, 0.0                   , 1.9004979295778149e-04]),
            (3, [ 5.9810090252461834e-01, 0.0                   , 1.9006715019240919e-04]),
            (3, [ 6.1739901922281160e-01, 0.0                   , 1.8998375555335099e-04]),
            (3, [ 6.3513652394111308e-01, 0.0                   , 1.8990141131562289e-04]),
            (3, [ 6.5120102282271997e-01, 0.0                   , 1.8985812577051059e-04]),
            (3, [ 6.6547583639481200e-01, 0.0                   , 1.8988047560957529e-04]),
            (3, [ 6.7784104148533697e-01, 0.0                   , 1.8997936104264021e-04]),
            (3, [ 6.8817608874841096e-01, 0.0                   , 1.9014645548441169e-04]),
            (3, [ 6.9636452670945981e-01, 0.0                   , 1.9035332462595420e-04]),
            (3, [ 7.0230106171535789e-01, 0.0                   , 1.9055561584632280e-04]),
            (3, [ 7.0590046366287529e-01, 0.0                   , 1.9070371556635280e-04]),
            (4, [ 3.5524703124725748e-02, 0.0                   , 5.9929978442499672e-05]),
            (4, [ 9.1511766208412837e-02, 0.0                   , 9.7490593824569775e-05]),
            (4, [ 1.5661979300689799e-01, 0.0                   , 1.2416808045991580e-04]),
            (4, [ 2.2654675992719070e-01, 0.0                   , 1.4376261542993601e-04]),
            (4, [ 2.9882423185813611e-01, 0.0                   , 1.5842000547939021e-04]),
            (4, [ 3.7174824197038858e-01, 0.0                   , 1.6944365509827440e-04]),
            (4, [ 4.4400944917588892e-01, 0.0                   , 1.7766170140181081e-04]),
            (4, [ 5.1453370967566425e-01, 0.0                   , 1.8361324344400769e-04]),
            (4, [ 5.8240536728602299e-01, 0.0                   , 1.8764947270759829e-04]),
            (4, [ 6.4682839610433696e-01, 0.0                   , 1.8999065353364819e-04]),
            (5, [ 6.0959642591043729e-02, 1.7878282753429311e-02, 8.1432528207673498e-05]),
            (5, [ 8.8119622709593878e-02, 3.9538887407920963e-02, 9.9988598908877277e-05]),
            (5, [ 1.1659367224288310e-01, 6.3781217977229895e-02, 1.1561994030683590e-04]),
            (5, [ 1.4602328570317849e-01, 8.9858908137450372e-02, 1.2876320926355131e-04]),
            (5, [ 1.7611971101817550e-01, 1.1726065105761620e-01, 1.3983786433651390e-04]),
            (5, [ 2.0664711904637181e-01, 1.4561028769709949e-01, 1.4918764684173909e-04]),
            (5, [ 2.3740760263281521e-01, 1.7461538230117751e-01, 1.5708556791754560e-04]),
            (5, [ 2.6823054743370511e-01, 2.0403830702955841e-01, 1.6374839481037750e-04]),
            (5, [ 2.9896533121423691e-01, 2.3367886340036981e-01, 1.6935005666328430e-04]),
            (5, [ 3.2947627527722090e-01, 2.6336327526542191e-01, 1.7403227693936330e-04]),
            (5, [ 3.5963908872760858e-01, 2.9293690980516007e-01, 1.7791266372782960e-04]),
            (5, [ 3.8933830463988123e-01, 3.2225927852755121e-01, 1.8109081088354121e-04]),
            (5, [ 4.1846537893583469e-01, 3.5120047911957430e-01, 1.8365291326001901e-04]),
            (5, [ 4.4691723190761662e-01, 3.7963856776845373e-01, 1.8567528417773790e-04]),
            (5, [ 4.7459508132769762e-01, 4.0745753782638788e-01, 1.8722705666068321e-04]),
            (5, [ 5.0140346014102621e-01, 4.3454569060278281e-01, 1.8837226455913070e-04]),
            (5, [ 5.2724934045512395e-01, 4.6079425152051340e-01, 1.8917143245252970e-04]),
            (5, [ 5.5204130518463657e-01, 4.8609612841817201e-01, 1.8968274804501459e-04]),
            (5, [ 5.7568872375030766e-01, 5.1034473953427895e-01, 1.8996284170595280e-04]),
            (5, [ 1.2250394305883520e-01, 2.1364559226557930e-02, 1.1233018290016690e-04]),
            (5, [ 1.5391132173213720e-01, 4.5209261661371881e-02, 1.2536988267112769e-04]),
            (5, [ 1.8562130986377121e-01, 7.0864681778648186e-02, 1.3662661176785311e-04]),
            (5, [ 2.1749987280351310e-01, 9.7852394887729177e-02, 1.4627368561069180e-04]),
            (5, [ 2.4941283369383299e-01, 1.2581063962672101e-01, 1.5450764666854119e-04]),
            (5, [ 2.8123215621434799e-01, 1.5445291250470011e-01, 1.6150962808140069e-04]),
            (5, [ 3.1283722764561112e-01, 1.8354335122027529e-01, 1.6743666397417591e-04]),
            (5, [ 3.4411451601779730e-01, 2.1288132586195849e-01, 1.7242250024379001e-04]),
            (5, [ 3.7495677148535100e-01, 2.4229137348808291e-01, 1.7658108229872879e-04]),
            (5, [ 4.0526217320156099e-01, 2.7161637483914530e-01, 1.8001041260107511e-04]),
            (5, [ 4.3493354535223849e-01, 3.0071276712402800e-01, 1.8279604373312841e-04]),
            (5, [ 4.6387766415249648e-01, 3.2944706772164789e-01, 1.8501403007163079e-04]),
            (5, [ 4.9200464104626868e-01, 3.5769325436991550e-01, 1.8673335073949381e-04]),
            (5, [ 5.1922735548617038e-01, 3.8533070597577640e-01, 1.8801786886382891e-04]),
            (5, [ 5.4546090811365222e-01, 4.1224250444526939e-01, 1.8892789256547580e-04]),
            (5, [ 5.7062206614241395e-01, 4.3831395877810270e-01, 1.8952138325073459e-04]),
            (5, [ 5.9462867551815179e-01, 4.6343125363005527e-01, 1.8985482773974200e-04]),
            (5, [ 1.9053707909242951e-01, 2.3713115377819789e-02, 1.3491059359373411e-04]),
            (5, [ 2.2425187177480091e-01, 4.9178780592548058e-02, 1.4440600683693260e-04]),
            (5, [ 2.5771908080259359e-01, 7.5954989604951423e-02, 1.5267973909300080e-04]),
            (5, [ 2.9087245349271867e-01, 1.0369910831911000e-01, 1.5982087714064741e-04]),
            (5, [ 3.2363540200562191e-01, 1.3213485844502340e-01, 1.6593543686153309e-04]),
            (5, [ 3.5592673593045432e-01, 1.6103165713147891e-01, 1.7112799109464399e-04]),
            (5, [ 3.8766371236769559e-01, 1.9019120803957071e-01, 1.7549527256014401e-04]),
            (5, [ 4.1876367052188418e-01, 2.1943849501379500e-01, 1.7912478508025291e-04]),
            (5, [ 4.4914490198831070e-01, 2.4861553347638579e-01, 1.8209543008777159e-04]),
            (5, [ 4.7872709324254448e-01, 2.7757689318123352e-01, 1.8447885245484490e-04]),
            (5, [ 5.0743151530555741e-01, 3.0618637865911202e-01, 1.8634094817062200e-04]),
            (5, [ 5.3518105077383360e-01, 3.3431447181525559e-01, 1.8774330087950681e-04]),
            (5, [ 5.6190010259753809e-01, 3.6183627290284270e-01, 1.8874445437052319e-04]),
            (5, [ 5.8751440352680462e-01, 3.8862975836204078e-01, 1.8940098293750059e-04]),
            (5, [ 6.1195073087344953e-01, 4.1457422777920311e-01, 1.8976833450351979e-04]),
            (5, [ 2.6197338701194628e-01, 2.5400471863893530e-02, 1.5173270374676531e-04]),
            (5, [ 2.9681497432379489e-01, 5.2081070185439893e-02, 1.5877405574835429e-04]),
            (5, [ 3.3104515048604882e-01, 7.9718284708855988e-02, 1.6490933822740971e-04]),
            (5, [ 3.6462155673766761e-01, 1.0804659991779270e-01, 1.7019152161932649e-04]),
            (5, [ 3.9749167852793599e-01, 1.3684138493666290e-01, 1.7468477531440649e-04]),
            (5, [ 4.2959674037720291e-01, 1.6590731847635590e-01, 1.7845555120075699e-04]),
            (5, [ 4.6087428544734471e-01, 1.9507037304546140e-01, 1.8156875621121740e-04]),
            (5, [ 4.9125988589499031e-01, 2.2417211443767240e-01, 1.8408643706633020e-04]),
            (5, [ 5.2068827589455580e-01, 2.5306552554064887e-01, 1.8606767853900059e-04]),
            (5, [ 5.4909409140198195e-01, 2.8161184097310660e-01, 1.8756905837437031e-04]),
            (5, [ 5.7641233020255422e-01, 3.0967805045932378e-01, 1.8864532363472249e-04]),
            (5, [ 6.0257860042135059e-01, 3.3713483663949873e-01, 1.8935011233296451e-04]),
            (5, [ 6.2752919647949557e-01, 3.6385478276943961e-01, 1.8973661845198681e-04]),
            (5, [ 3.3481894798617712e-01, 2.6648419355374431e-02, 1.6439088151527361e-04]),
            (5, [ 3.6995155458552947e-01, 5.4240000668434950e-02, 1.6963003509077679e-04]),
            (5, [ 4.0420030714746691e-01, 8.2519927154308545e-02, 1.7415531038444829e-04]),
            (5, [ 4.3753201001826242e-01, 1.1126951824837100e-01, 1.7800152823860919e-04]),
            (5, [ 4.6990544903359471e-01, 1.4029641164678161e-01, 1.8121167870771251e-04]),
            (5, [ 5.0127398794319522e-01, 1.6942751175842910e-01, 1.8383231580854209e-04]),
            (5, [ 5.3158748837549663e-01, 1.9850382353126891e-01, 1.8591131198377370e-04]),
            (5, [ 5.6079371096221164e-01, 2.2737656600208930e-01, 1.8749692202216979e-04]),
            (5, [ 5.8883932234955205e-01, 2.5590414928497640e-01, 1.8863756126810761e-04]),
            (5, [ 6.1567059791601630e-01, 2.8394972519768991e-01, 1.8938195758092761e-04]),
            (5, [ 6.4123388090781230e-01, 3.1137910605006902e-01, 1.8977947482567669e-04]),
            (5, [ 4.0760512592571668e-01, 2.7577922908584629e-02, 1.7389639265848460e-04]),
            (5, [ 4.4237881257915201e-01, 5.5841368349842928e-02, 1.7774423598734661e-04]),
            (5, [ 4.7604809173282581e-01, 8.4577720877271431e-02, 1.8100108150687189e-04]),
            (5, [ 5.0858387259462967e-01, 1.1359758463592480e-01, 1.8369203182481289e-04]),
            (5, [ 5.3995136373912178e-01, 1.4272869047650530e-01, 1.8584894732143279e-04]),
            (5, [ 5.7011184336363796e-01, 1.7181127400576349e-01, 1.8750793424965919e-04]),
            (5, [ 5.9902405306060214e-01, 2.0069448559853509e-01, 1.8870802391023100e-04]),
            (5, [ 6.2664526851396951e-01, 2.2923350905989071e-01, 1.8949057521768219e-04]),
            (5, [ 6.5293209714159417e-01, 2.5728715123537138e-01, 1.8989910612006951e-04]),
            (5, [ 4.7915838346101258e-01, 2.8260941977359320e-02, 1.8090650164587910e-04]),
            (5, [ 5.1303739527969405e-01, 5.6998713596836489e-02, 1.8362971215967990e-04]),
            (5, [ 5.4562524296284765e-01, 8.6027125285543946e-02, 1.8584269162418690e-04]),
            (5, [ 5.7689563296823854e-01, 1.1517481372212809e-01, 1.8756541011346410e-04]),
            (5, [ 6.0681869446990455e-01, 1.4428116541363620e-01, 1.8882407518335030e-04]),
            (5, [ 6.3536222480249072e-01, 1.7319303216576801e-01, 1.8964973838669791e-04]),
            (5, [ 6.6249270357317969e-01, 2.0176199587560609e-01, 1.9007755302191209e-04]),
            (5, [ 5.4849335080284878e-01, 2.8742197559073909e-02, 1.8585250414788140e-04]),
            (5, [ 5.8102076821421056e-01, 5.7783121237136949e-02, 1.8762486900779471e-04]),
            (5, [ 6.1209551971813525e-01, 8.6952623714395258e-02, 1.8894044390646071e-04]),
            (5, [ 6.4169442842943192e-01, 1.1608937670571660e-01, 1.8981685392652900e-04]),
            (5, [ 6.6979263917312604e-01, 1.4503788267432510e-01, 1.9027799406617720e-04]),
            (5, [ 6.1475943905854880e-01, 2.9049576223414562e-02, 1.8901256417318149e-04]),
            (5, [ 6.4553900263567832e-01, 5.8238091526171973e-02, 1.8994346377957511e-04]),
            (5, [ 6.7472585883654768e-01, 8.7403848998847150e-02, 1.9045208568317510e-04]),
            (5, [ 6.7721357503953472e-01, 2.9199461358081050e-02, 1.9055344987345629e-04]),
        ],
        _ => unreachable!(),
    };

    const fn code_length(code: u8) -> usize {
        match code {
            0 => 6,
            1 => 12,
            2 => 8,
            3 => 24,
            4 => 24,
            5 => 48,
            _ => unreachable!(),
        }
    }

    let mut quads = unsafe { uninitialized_vec::<f64>(degree * 3)? };
    let mut weights = unsafe { uninitialized_vec::<f64>(degree)? };
    let mut index = 0;

    for &(code, [a, b, v]) in grid_table.iter() {
        let code_len = code_length(code);
        let quads_slice = &mut quads[index * 3..index * 3 + code_len * 3];
        let weights_slice = &mut weights[index..index + code_len];
        lebedev_generate_sph_oh(code, a, b, v, quads_slice, weights_slice);
        index += code_len;
    }

    Ok((quads, weights))
}

/* #endregion */

#[cfg(test)]
mod test {
    use super::*;

    #[test]
    fn playground() {
        let device = DeviceCpuSerial::default();
        let time = std::time::Instant::now();
        let res = lebedev_rule_from_degree(5810, &device);
        let (quads, weights) = res.into();
        println!("quads: {quads:?}");
        println!("weights: {weights:?}");
        println!("Time taken: {:?}", time.elapsed());
    }
}
